diff options
Diffstat (limited to 'SrcShared/UAE/cpuemu.c')
-rw-r--r-- | SrcShared/UAE/cpuemu.c | 24243 |
1 files changed, 24243 insertions, 0 deletions
diff --git a/SrcShared/UAE/cpuemu.c b/SrcShared/UAE/cpuemu.c new file mode 100644 index 0000000..5274a15 --- /dev/null +++ b/SrcShared/UAE/cpuemu.c @@ -0,0 +1,24243 @@ +#include "UAE.h" +#if HAS_PROFILING +#include "Profiling.h" +#endif + +#if !defined(PART_1) && !defined(PART_2) && !defined(PART_3) && !defined(PART_4) && !defined(PART_5) && !defined(PART_6) && !defined(PART_7) && !defined(PART_8) +#define PART_1 1 +#define PART_2 1 +#define PART_3 1 +#define PART_4 1 +#define PART_5 1 +#define PART_6 1 +#define PART_7 1 +#define PART_8 1 +#endif + +#ifdef PART_1 +unsigned long REGPARAM2 op_0_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_10_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_18_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_20_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_28_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_30_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_38_3(uae_u32 opcode) /* OR */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_39_3(uae_u32 opcode) /* OR */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_3c_3(uae_u32 opcode) /* ORSR */ +{ +{ MakeSR(); +{ uae_s16 src = get_iword(2); + src &= 0xFF; + regs.sr |= src; + MakeFromSR(); +}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_40_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_50_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_58_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_60_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_68_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_70_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_78_3(uae_u32 opcode) /* OR */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_79_3(uae_u32 opcode) /* OR */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_7c_3(uae_u32 opcode) /* ORSR */ +{ +{if (!regs.s) { Exception(8,0); goto endlabel18; } +{ MakeSR(); +{ uae_s16 src = get_iword(2); + regs.sr |= src; + MakeFromSR(); +}}}m68k_incpc(4); +endlabel18: ; +return 4; +} +unsigned long REGPARAM2 op_80_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_90_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_98_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_a0_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_a8_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_b0_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_b8_3(uae_u32 opcode) /* OR */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_b9_3(uae_u32 opcode) /* OR */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(10); +return 18; +} +unsigned long REGPARAM2 op_100_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_108_3(uae_u32 opcode) /* MVPMR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_u16 val = (get_byte(memp) << 8) + get_byte(memp + 2); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_110_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_118_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_120_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_128_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_130_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_138_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_139_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_13a_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 2; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_getpc () + 2; + dsta += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_13b_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 3; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_13c_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = get_ibyte(2); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_140_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + m68k_dreg(regs, dstreg) = (dst); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_148_3(uae_u32 opcode) /* MVPMR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_u32 val = (get_byte(memp) << 24) + (get_byte(memp + 2) << 16) + + (get_byte(memp + 4) << 8) + get_byte(memp + 6); + m68k_dreg(regs, dstreg) = (val); +}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_150_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_158_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_160_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_168_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_170_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_178_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_179_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_17a_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 2; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_getpc () + 2; + dsta += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_17b_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 3; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_180_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + m68k_dreg(regs, dstreg) = (dst); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_188_3(uae_u32 opcode) /* MVPRM */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); + uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + put_byte(memp, src >> 8); put_byte(memp + 2, src); +}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_190_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_198_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_1a0_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_1a8_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1b0_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1b8_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1b9_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_1ba_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 2; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_getpc () + 2; + dsta += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1bb_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 3; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1c0_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + m68k_dreg(regs, dstreg) = (dst); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_1c8_3(uae_u32 opcode) /* MVPRM */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); + uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + put_byte(memp, src >> 24); put_byte(memp + 2, src >> 16); + put_byte(memp + 4, src >> 8); put_byte(memp + 6, src); +}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_1d0_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_1d8_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_1e0_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_1e8_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1f0_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1f8_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1f9_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_1fa_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 2; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_getpc () + 2; + dsta += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1fb_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = 3; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_200_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_210_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_218_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_220_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_228_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_230_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_238_3(uae_u32 opcode) /* AND */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_239_3(uae_u32 opcode) /* AND */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_23c_3(uae_u32 opcode) /* ANDSR */ +{ +{ MakeSR(); +{ uae_s16 src = get_iword(2); + src |= 0xFF00; + regs.sr &= src; + MakeFromSR(); +}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_240_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_250_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_258_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_260_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_268_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_270_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_278_3(uae_u32 opcode) /* AND */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_279_3(uae_u32 opcode) /* AND */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_27c_3(uae_u32 opcode) /* ANDSR */ +{ +{if (!regs.s) { Exception(8,0); goto endlabel89; } +{ MakeSR(); +{ uae_s16 src = get_iword(2); + regs.sr &= src; + MakeFromSR(); +}}}m68k_incpc(4); +endlabel89: ; +return 4; +} +unsigned long REGPARAM2 op_280_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_290_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_298_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_2a0_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_2a8_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_2b0_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_2b8_3(uae_u32 opcode) /* AND */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_2b9_3(uae_u32 opcode) /* AND */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(10); +return 18; +} +unsigned long REGPARAM2 op_400_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_410_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_418_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_420_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_428_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_430_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_438_3(uae_u32 opcode) /* SUB */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_439_3(uae_u32 opcode) /* SUB */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_440_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_450_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_458_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_460_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_468_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_470_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_478_3(uae_u32 opcode) /* SUB */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_479_3(uae_u32 opcode) /* SUB */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_480_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_490_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_498_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_4a0_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_4a8_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_4b0_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_4b8_3(uae_u32 opcode) /* SUB */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_4b9_3(uae_u32 opcode) /* SUB */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(10); +return 18; +} +unsigned long REGPARAM2 op_600_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_610_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_618_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_620_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_628_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_630_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_638_3(uae_u32 opcode) /* ADD */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_639_3(uae_u32 opcode) /* ADD */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_640_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_650_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_658_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_660_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_668_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_670_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_678_3(uae_u32 opcode) /* ADD */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_679_3(uae_u32 opcode) /* ADD */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_680_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_690_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_698_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_6a0_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_6a8_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_6b0_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_6b8_3(uae_u32 opcode) /* ADD */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_6b9_3(uae_u32 opcode) /* ADD */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(10); +return 18; +} +unsigned long REGPARAM2 op_800_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_810_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_818_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_820_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_828_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_830_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_838_3(uae_u32 opcode) /* BTST */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_839_3(uae_u32 opcode) /* BTST */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(8); +return 10; +} +unsigned long REGPARAM2 op_83a_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 dstreg = 2; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_83b_3(uae_u32 opcode) /* BTST */ +{ + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_83c_3(uae_u32 opcode) /* BTST */ +{ +{{ uae_s16 src = get_iword(2); +{ uae_s8 dst = get_ibyte(4); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_840_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + m68k_dreg(regs, dstreg) = (dst); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_850_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_858_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_860_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_868_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_870_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_878_3(uae_u32 opcode) /* BCHG */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_879_3(uae_u32 opcode) /* BCHG */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_87a_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 dstreg = 2; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_87b_3(uae_u32 opcode) /* BCHG */ +{ + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + dst ^= (1 << src); + SET_ZFLG ((dst >> src) & 1); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_880_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + m68k_dreg(regs, dstreg) = (dst); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_890_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_898_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_8a0_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_8a8_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_8b0_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_8b8_3(uae_u32 opcode) /* BCLR */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_8b9_3(uae_u32 opcode) /* BCLR */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_8ba_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 dstreg = 2; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_8bb_3(uae_u32 opcode) /* BCLR */ +{ + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst &= ~(1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_8c0_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= 31; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + m68k_dreg(regs, dstreg) = (dst); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_8d0_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_8d8_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_8e0_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_8e8_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_8f0_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_8f8_3(uae_u32 opcode) /* BSET */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_8f9_3(uae_u32 opcode) /* BSET */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_8fa_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 dstreg = 2; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_8fb_3(uae_u32 opcode) /* BSET */ +{ + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src &= 7; + SET_ZFLG (1 ^ ((dst >> src) & 1)); + dst |= (1 << src); + put_byte(dsta,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_a00_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_a10_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_a18_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_a20_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_a28_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_a30_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_a38_3(uae_u32 opcode) /* EOR */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_a39_3(uae_u32 opcode) /* EOR */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_a3c_3(uae_u32 opcode) /* EORSR */ +{ +{ MakeSR(); +{ uae_s16 src = get_iword(2); + src &= 0xFF; + regs.sr ^= src; + MakeFromSR(); +}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_a40_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_a50_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_a58_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_a60_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_a68_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_a70_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +#endif + +#ifdef PART_2 +unsigned long REGPARAM2 op_a78_3(uae_u32 opcode) /* EOR */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_a79_3(uae_u32 opcode) /* EOR */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_a7c_3(uae_u32 opcode) /* EORSR */ +{ +{if (!regs.s) { Exception(8,0); goto endlabel204; } +{ MakeSR(); +{ uae_s16 src = get_iword(2); + regs.sr ^= src; + MakeFromSR(); +}}}m68k_incpc(4); +endlabel204: ; +return 4; +} +unsigned long REGPARAM2 op_a80_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_a90_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_a98_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_aa0_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_aa8_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_ab0_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_ab8_3(uae_u32 opcode) /* EOR */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_ab9_3(uae_u32 opcode) /* EOR */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(10); +return 18; +} +unsigned long REGPARAM2 op_c00_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_c10_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c18_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c20_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c28_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_c30_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_c38_3(uae_u32 opcode) /* CMP */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_c39_3(uae_u32 opcode) /* CMP */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); +return 10; +} +unsigned long REGPARAM2 op_c3a_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = 2; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_c3b_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = 3; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_c40_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_c50_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c58_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c60_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c68_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_c70_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_c78_3(uae_u32 opcode) /* CMP */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_c79_3(uae_u32 opcode) /* CMP */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); +return 10; +} +unsigned long REGPARAM2 op_c7a_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = 2; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_getpc () + 4; + dsta += (uae_s32)(uae_s16)get_iword(4); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_c7b_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = 3; +{{ uae_s16 src = get_iword(2); +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_c80_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_c90_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_c98_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_ca0_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_ca8_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_cb0_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_cb8_3(uae_u32 opcode) /* CMP */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_cb9_3(uae_u32 opcode) /* CMP */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(10); +return 14; +} +unsigned long REGPARAM2 op_cba_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = 2; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_getpc () + 6; + dsta += (uae_s32)(uae_s16)get_iword(6); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_cbb_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = 3; +{{ uae_s32 src = get_ilong(2); +{ uaecptr tmppc = m68k_getpc() + 6; + uaecptr dsta = get_disp_ea_000(tmppc, get_iword(6)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_1000_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_1010_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_1018_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_1020_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_1028_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_1030_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_1038_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_1039_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_103a_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_103b_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_103c_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = get_ibyte(2); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_1080_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_1090_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_1098_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_10a0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_10a8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_10b0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_10b8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_10b9_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_10ba_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_10bb_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_10bc_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_10c0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_10d0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_10d8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_10e0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_10e8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_10f0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_10f8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_10f9_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_10fa_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_10fb_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_10fc_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_1100_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_1110_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_1118_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_1120_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_1128_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1130_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1138_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1139_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_113a_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_113b_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_113c_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_1140_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_1150_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1158_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1160_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1168_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_1170_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_1178_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_1179_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_117a_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_117b_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_117c_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_1180_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_1190_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_1198_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_11a0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_11a8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_11b0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_11b8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_11b9_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_11ba_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_11bb_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_11bc_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_11c0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_11d0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_11d8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_11e0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_11e8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_11f0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_11f8_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_11f9_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_11fa_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_11fb_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_11fc_3(uae_u32 opcode) /* MOVE */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_13c0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_13d0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_13d8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_13e0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_13e8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_13f0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_13f8_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_13f9_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(10); +return 14; +} +unsigned long REGPARAM2 op_13fa_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_13fb_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_13fc_3(uae_u32 opcode) /* MOVE */ +{ +{{ uae_s8 src = get_ibyte(2); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}m68k_incpc(8); +return 10; +} +unsigned long REGPARAM2 op_2000_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_2008_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_2010_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_2018_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_2020_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_2028_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_2030_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_2038_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_2039_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_203a_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_203b_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_203c_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_2040_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_2048_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_2050_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_2058_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_2060_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_2068_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_2070_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_2078_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_2079_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_207a_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_207b_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_207c_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_u32 val = src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_2080_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_2088_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_2090_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_2098_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_20a0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_20a8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_20b0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_20b8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_20b9_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_20ba_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_20bb_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_20bc_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_20c0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_20c8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_20d0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_20d8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_20e0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_20e8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_20f0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_20f8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_20f9_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_20fa_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_20fb_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_20fc_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_2100_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_2108_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_2110_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_2118_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_2120_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_2128_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_2130_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_2138_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_2139_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_213a_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_213b_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +#endif + +#ifdef PART_3 +unsigned long REGPARAM2 op_213c_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_2140_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_2148_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_2150_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_2158_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_2160_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_2168_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_2170_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_2178_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_2179_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_217a_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_217b_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_217c_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_2180_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_2188_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_2190_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_2198_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_21a0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_21a8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_21b0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_21b8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_21b9_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_21ba_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_21bb_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_21bc_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_21c0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_21c8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_21d0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_21d8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_21e0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_21e8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_21f0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_21f8_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_21f9_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_21fa_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_21fb_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_21fc_3(uae_u32 opcode) /* MOVE */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_23c0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_23c8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_23d0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_23d8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_23e0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_23e8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_23f0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_23f8_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_23f9_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(10); +return 18; +} +unsigned long REGPARAM2 op_23fa_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_23fb_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(8); +return 16; +} +unsigned long REGPARAM2 op_23fc_3(uae_u32 opcode) /* MOVE */ +{ +{{ uae_s32 src = get_ilong(2); +{ uaecptr dsta = get_ilong(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}m68k_incpc(10); +return 14; +} +unsigned long REGPARAM2 op_3000_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_3008_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_3010_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_3018_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_3020_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_3028_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_3030_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_3038_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_3039_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_303a_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_303b_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_303c_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_3040_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_3048_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_3050_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_3058_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_3060_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_3068_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_3070_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_3078_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_3079_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_307a_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_307b_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_307c_3(uae_u32 opcode) /* MOVEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uae_u32 val = (uae_s32)(uae_s16)src; + m68k_areg(regs, dstreg) = (val); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_3080_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_3088_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_3090_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_3098_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_30a0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_30a8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_30b0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_30b8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_30b9_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_30ba_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_30bb_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_30bc_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_30c0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_30c8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_30d0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_30d8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_30e0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_30e8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_30f0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_30f8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_30f9_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_30fa_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_30fb_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_30fc_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_3100_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_3108_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_3110_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_3118_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_3120_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_3128_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_3130_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_3138_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_3139_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_313a_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_313b_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_313c_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_3140_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_3148_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_3150_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_3158_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_3160_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_3168_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_3170_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_3178_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_3179_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_317a_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_317b_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_317c_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_3180_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_3188_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_3190_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_3198_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_31a0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_31a8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_31b0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_31b8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_31b9_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_31ba_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_31bb_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_31bc_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_31c0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_31c8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_31d0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_31d8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_31e0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_31e8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_31f0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_31f8_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_31f9_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_31fa_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_31fb_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_31fc_3(uae_u32 opcode) /* MOVE */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_33c0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_33c8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_33d0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_33d8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_33e0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_33e8_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_33f0_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_33f8_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_33f9_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(6); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(10); +return 14; +} +unsigned long REGPARAM2 op_33fa_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_33fb_3(uae_u32 opcode) /* MOVE */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(8); +return 12; +} +unsigned long REGPARAM2 op_33fc_3(uae_u32 opcode) /* MOVE */ +{ +{{ uae_s16 src = get_iword(2); +{ uaecptr dsta = get_ilong(4); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}m68k_incpc(8); +return 10; +} +unsigned long REGPARAM2 op_4000_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4010_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4018_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4020_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4028_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4030_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4038_3(uae_u32 opcode) /* NEGX */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4039_3(uae_u32 opcode) /* NEGX */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_4040_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((newv) & 0xffff); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4050_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4058_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4060_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4068_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4070_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4078_3(uae_u32 opcode) /* NEGX */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4079_3(uae_u32 opcode) /* NEGX */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(srca,newv); +}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_4080_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, srcreg) = (newv); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4090_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_4098_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_40a0_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_40a8_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_40b0_3(uae_u32 opcode) /* NEGX */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_40b8_3(uae_u32 opcode) /* NEGX */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_40b9_3(uae_u32 opcode) /* NEGX */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(srca,newv); +}}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_40c0_3(uae_u32 opcode) /* MVSR2 */ +{ + uae_u32 srcreg = (opcode & 7); +{{ MakeSR(); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff); +}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_40d0_3(uae_u32 opcode) /* MVSR2 */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_40d8_3(uae_u32 opcode) /* MVSR2 */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += 2; + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_40e0_3(uae_u32 opcode) /* MVSR2 */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_40e8_3(uae_u32 opcode) /* MVSR2 */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_40f0_3(uae_u32 opcode) /* MVSR2 */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_40f8_3(uae_u32 opcode) /* MVSR2 */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_40f9_3(uae_u32 opcode) /* MVSR2 */ +{ +{{ uaecptr srca = get_ilong(2); + MakeSR(); + put_word(srca,regs.sr); +}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_4100_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel579; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel579; } +}}}m68k_incpc(2); +endlabel579: ; +return 2; +} +unsigned long REGPARAM2 op_4110_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel580; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel580; } +}}}}m68k_incpc(2); +endlabel580: ; +return 6; +} +unsigned long REGPARAM2 op_4118_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel581; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel581; } +}}}}m68k_incpc(2); +endlabel581: ; +return 6; +} +unsigned long REGPARAM2 op_4120_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel582; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel582; } +}}}}m68k_incpc(2); +endlabel582: ; +return 6; +} +unsigned long REGPARAM2 op_4128_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel583; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel583; } +}}}}m68k_incpc(4); +endlabel583: ; +return 8; +} +unsigned long REGPARAM2 op_4130_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel584; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel584; } +}}}}m68k_incpc(4); +endlabel584: ; +return 8; +} +unsigned long REGPARAM2 op_4138_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel585; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel585; } +}}}}m68k_incpc(4); +endlabel585: ; +return 8; +} +unsigned long REGPARAM2 op_4139_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel586; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel586; } +}}}}m68k_incpc(6); +endlabel586: ; +return 10; +} +unsigned long REGPARAM2 op_413a_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel587; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel587; } +}}}}m68k_incpc(4); +endlabel587: ; +return 8; +} +unsigned long REGPARAM2 op_413b_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel588; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel588; } +}}}}m68k_incpc(4); +endlabel588: ; +return 8; +} +unsigned long REGPARAM2 op_413c_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel589; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel589; } +}}}m68k_incpc(6); +endlabel589: ; +return 6; +} +unsigned long REGPARAM2 op_4180_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel590; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel590; } +}}}m68k_incpc(2); +endlabel590: ; +return 2; +} +unsigned long REGPARAM2 op_4190_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel591; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel591; } +}}}}m68k_incpc(2); +endlabel591: ; +return 4; +} +unsigned long REGPARAM2 op_4198_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel592; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel592; } +}}}}m68k_incpc(2); +endlabel592: ; +return 4; +} +unsigned long REGPARAM2 op_41a0_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel593; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel593; } +}}}}m68k_incpc(2); +endlabel593: ; +return 4; +} +unsigned long REGPARAM2 op_41a8_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel594; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel594; } +}}}}m68k_incpc(4); +endlabel594: ; +return 6; +} +unsigned long REGPARAM2 op_41b0_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel595; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel595; } +}}}}m68k_incpc(4); +endlabel595: ; +return 6; +} +unsigned long REGPARAM2 op_41b8_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel596; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel596; } +}}}}m68k_incpc(4); +endlabel596: ; +return 6; +} +unsigned long REGPARAM2 op_41b9_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel597; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel597; } +}}}}m68k_incpc(6); +endlabel597: ; +return 8; +} +unsigned long REGPARAM2 op_41ba_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel598; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel598; } +}}}}m68k_incpc(4); +endlabel598: ; +return 6; +} +unsigned long REGPARAM2 op_41bb_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel599; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel599; } +}}}}m68k_incpc(4); +endlabel599: ; +return 6; +} +unsigned long REGPARAM2 op_41bc_3(uae_u32 opcode) /* CHK */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc); goto endlabel600; } + else if (dst > src) { SET_NFLG (0); Exception(6,oldpc); goto endlabel600; } +}}}m68k_incpc(4); +endlabel600: ; +return 4; +} +unsigned long REGPARAM2 op_41d0_3(uae_u32 opcode) /* LEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{{ uaecptr prev_dstreg = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) = (srca); + if (dstreg == 7) { + if (srcreg == 7) { + if (prev_dstreg < (srca)) CHECK_STACK_POINTER_INCREMENT (); + if (prev_dstreg > (srca)) CHECK_STACK_POINTER_DECREMENT (); + } else { + CHECK_STACK_POINTER_ASSIGNMENT (); + } + } +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_41e8_3(uae_u32 opcode) /* LEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{{ uaecptr prev_dstreg = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) = (srca); + if (dstreg == 7) { + if (srcreg == 7) { + if (prev_dstreg < (srca)) CHECK_STACK_POINTER_INCREMENT (); + if (prev_dstreg > (srca)) CHECK_STACK_POINTER_DECREMENT (); + } else { + CHECK_STACK_POINTER_ASSIGNMENT (); + } + } +}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_41f0_3(uae_u32 opcode) /* LEA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{{ uaecptr prev_dstreg = m68k_areg(regs, dstreg); + m68k_areg(regs, dstreg) = (srca); + if (dstreg == 7) { + if (srcreg == 7) { + if (prev_dstreg < (srca)) CHECK_STACK_POINTER_INCREMENT (); + if (prev_dstreg > (srca)) CHECK_STACK_POINTER_DECREMENT (); + } else { + CHECK_STACK_POINTER_ASSIGNMENT (); + } + } +}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_41f8_3(uae_u32 opcode) /* LEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ m68k_areg(regs, dstreg) = (srca); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_41f9_3(uae_u32 opcode) /* LEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ m68k_areg(regs, dstreg) = (srca); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_41fa_3(uae_u32 opcode) /* LEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ m68k_areg(regs, dstreg) = (srca); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_41fb_3(uae_u32 opcode) /* LEA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ m68k_areg(regs, dstreg) = (srca); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_4200_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((0) & 0xff); +}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4210_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_4218_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_4220_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_4228_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4230_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4238_3(uae_u32 opcode) /* CLR */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4239_3(uae_u32 opcode) /* CLR */ +{ +{{ uaecptr srca = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(0)) == 0); + SET_NFLG (((uae_s8)(0)) < 0); + put_byte(srca,0); +}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_4240_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((0) & 0xffff); +}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4250_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_4258_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_4260_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_4268_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(4); +return 6; +} +#endif + +#ifdef PART_4 +unsigned long REGPARAM2 op_4270_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4278_3(uae_u32 opcode) /* CLR */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4279_3(uae_u32 opcode) /* CLR */ +{ +{{ uaecptr srca = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(0)) == 0); + SET_NFLG (((uae_s16)(0)) < 0); + put_word(srca,0); +}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_4280_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + m68k_dreg(regs, srcreg) = (0); +}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4290_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4298_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_42a0_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_42a8_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_42b0_3(uae_u32 opcode) /* CLR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_42b8_3(uae_u32 opcode) /* CLR */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_42b9_3(uae_u32 opcode) /* CLR */ +{ +{{ uaecptr srca = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(0)) == 0); + SET_NFLG (((uae_s32)(0)) < 0); + put_long(srca,0); +}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_4400_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff); +}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4410_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4418_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4420_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4428_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4430_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4438_3(uae_u32 opcode) /* NEG */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4439_3(uae_u32 opcode) /* NEG */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(0)) < 0; + int flgn = ((uae_s8)(dst)) < 0; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(srca,dst); +}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_4440_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); +}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4450_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4458_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4460_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4468_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4470_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4478_3(uae_u32 opcode) /* NEG */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4479_3(uae_u32 opcode) /* NEG */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(0)) < 0; + int flgn = ((uae_s16)(dst)) < 0; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(srca,dst); +}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_4480_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, srcreg) = (dst); +}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4490_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_4498_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_44a0_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_44a8_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_44b0_3(uae_u32 opcode) /* NEG */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_44b8_3(uae_u32 opcode) /* NEG */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_44b9_3(uae_u32 opcode) /* NEG */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(0)) < 0; + int flgn = ((uae_s32)(dst)) < 0; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(srca,dst); +}}}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_44c0_3(uae_u32 opcode) /* MV2SR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_44d0_3(uae_u32 opcode) /* MV2SR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_44d8_3(uae_u32 opcode) /* MV2SR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_44e0_3(uae_u32 opcode) /* MV2SR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_44e8_3(uae_u32 opcode) /* MV2SR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_44f0_3(uae_u32 opcode) /* MV2SR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_44f8_3(uae_u32 opcode) /* MV2SR */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_44f9_3(uae_u32 opcode) /* MV2SR */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_44fa_3(uae_u32 opcode) /* MV2SR */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_44fb_3(uae_u32 opcode) /* MV2SR */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_44fc_3(uae_u32 opcode) /* MV2SR */ +{ +{{ uae_s16 src = get_iword(2); + MakeSR(); + regs.sr &= 0xFF00; + regs.sr |= src & 0xFF; + MakeFromSR(); +}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_4600_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4610_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4618_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4620_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4628_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4630_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4638_3(uae_u32 opcode) /* NOT */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4639_3(uae_u32 opcode) /* NOT */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(dst)) == 0); + SET_NFLG (((uae_s8)(dst)) < 0); + put_byte(srca,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_4640_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4650_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4658_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4660_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4668_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4670_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4678_3(uae_u32 opcode) /* NOT */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4679_3(uae_u32 opcode) /* NOT */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + put_word(srca,dst); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_4680_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg(regs, srcreg) = (dst); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4690_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_4698_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_46a0_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_46a8_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_46b0_3(uae_u32 opcode) /* NOT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_46b8_3(uae_u32 opcode) /* NOT */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_46b9_3(uae_u32 opcode) /* NOT */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_u32 dst = ~src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + put_long(srca,dst); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_46c0_3(uae_u32 opcode) /* MV2SR */ +{ + uae_u32 srcreg = (opcode & 7); +{if (!regs.s) { Exception(8,0); goto endlabel691; } +{{ uae_s16 src = m68k_dreg(regs, srcreg); + regs.sr = src; + MakeFromSR(); +}}}m68k_incpc(2); +endlabel691: ; +return 2; +} +unsigned long REGPARAM2 op_46d0_3(uae_u32 opcode) /* MV2SR */ +{ + uae_u32 srcreg = (opcode & 7); +{if (!regs.s) { Exception(8,0); goto endlabel692; } +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(2); +endlabel692: ; +return 4; +} +unsigned long REGPARAM2 op_46d8_3(uae_u32 opcode) /* MV2SR */ +{ + uae_u32 srcreg = (opcode & 7); +{if (!regs.s) { Exception(8,0); goto endlabel693; } +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(2); +endlabel693: ; +return 4; +} +unsigned long REGPARAM2 op_46e0_3(uae_u32 opcode) /* MV2SR */ +{ + uae_u32 srcreg = (opcode & 7); +{if (!regs.s) { Exception(8,0); goto endlabel694; } +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(2); +endlabel694: ; +return 4; +} +unsigned long REGPARAM2 op_46e8_3(uae_u32 opcode) /* MV2SR */ +{ + uae_u32 srcreg = (opcode & 7); +{if (!regs.s) { Exception(8,0); goto endlabel695; } +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(4); +endlabel695: ; +return 6; +} +unsigned long REGPARAM2 op_46f0_3(uae_u32 opcode) /* MV2SR */ +{ + uae_u32 srcreg = (opcode & 7); +{if (!regs.s) { Exception(8,0); goto endlabel696; } +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(4); +endlabel696: ; +return 6; +} +unsigned long REGPARAM2 op_46f8_3(uae_u32 opcode) /* MV2SR */ +{ +{if (!regs.s) { Exception(8,0); goto endlabel697; } +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(4); +endlabel697: ; +return 6; +} +unsigned long REGPARAM2 op_46f9_3(uae_u32 opcode) /* MV2SR */ +{ +{if (!regs.s) { Exception(8,0); goto endlabel698; } +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(6); +endlabel698: ; +return 8; +} +unsigned long REGPARAM2 op_46fa_3(uae_u32 opcode) /* MV2SR */ +{ +{if (!regs.s) { Exception(8,0); goto endlabel699; } +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(4); +endlabel699: ; +return 6; +} +unsigned long REGPARAM2 op_46fb_3(uae_u32 opcode) /* MV2SR */ +{ +{if (!regs.s) { Exception(8,0); goto endlabel700; } +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); + regs.sr = src; + MakeFromSR(); +}}}}m68k_incpc(4); +endlabel700: ; +return 6; +} +unsigned long REGPARAM2 op_46fc_3(uae_u32 opcode) /* MV2SR */ +{ +{if (!regs.s) { Exception(8,0); goto endlabel701; } +{{ uae_s16 src = get_iword(2); + regs.sr = src; + MakeFromSR(); +}}}m68k_incpc(4); +endlabel701: ; +return 4; +} +unsigned long REGPARAM2 op_4800_3(uae_u32 opcode) /* NBCD */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } + newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90); + COPY_CARRY; + if (cflg) newv -= 0x60; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4810_3(uae_u32 opcode) /* NBCD */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } + newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90); + COPY_CARRY; + if (cflg) newv -= 0x60; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4818_3(uae_u32 opcode) /* NBCD */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } + newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90); + COPY_CARRY; + if (cflg) newv -= 0x60; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4820_3(uae_u32 opcode) /* NBCD */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } + newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90); + COPY_CARRY; + if (cflg) newv -= 0x60; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4828_3(uae_u32 opcode) /* NBCD */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } + newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90); + COPY_CARRY; + if (cflg) newv -= 0x60; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4830_3(uae_u32 opcode) /* NBCD */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } + newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90); + COPY_CARRY; + if (cflg) newv -= 0x60; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4838_3(uae_u32 opcode) /* NBCD */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } + newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90); + COPY_CARRY; + if (cflg) newv -= 0x60; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4839_3(uae_u32 opcode) /* NBCD */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } + newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90); + COPY_CARRY; + if (cflg) newv -= 0x60; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(srca,newv); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_4840_3(uae_u32 opcode) /* SWAP */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg(regs, srcreg) = (dst); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4850_3(uae_u32 opcode) /* PEA */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + if (7 == 7) CHECK_STACK_POINTER_DECREMENT (); + put_long(dsta,srca); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4868_3(uae_u32 opcode) /* PEA */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + if (7 == 7) CHECK_STACK_POINTER_DECREMENT (); + put_long(dsta,srca); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4870_3(uae_u32 opcode) /* PEA */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + if (7 == 7) CHECK_STACK_POINTER_DECREMENT (); + put_long(dsta,srca); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4878_3(uae_u32 opcode) /* PEA */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + if (7 == 7) CHECK_STACK_POINTER_DECREMENT (); + put_long(dsta,srca); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4879_3(uae_u32 opcode) /* PEA */ +{ +{{ uaecptr srca = get_ilong(2); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + if (7 == 7) CHECK_STACK_POINTER_DECREMENT (); + put_long(dsta,srca); +}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_487a_3(uae_u32 opcode) /* PEA */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + if (7 == 7) CHECK_STACK_POINTER_DECREMENT (); + put_long(dsta,srca); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_487b_3(uae_u32 opcode) /* PEA */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uaecptr dsta = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = dsta; + if (7 == 7) CHECK_STACK_POINTER_DECREMENT (); + put_long(dsta,srca); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4880_3(uae_u32 opcode) /* EXT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u16 dst = (uae_s16)(uae_s8)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(dst)) == 0); + SET_NFLG (((uae_s16)(dst)) < 0); + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4890_3(uae_u32 opcode) /* MVMLE */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = m68k_areg(regs, dstreg); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; } + while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_48a0_3(uae_u32 opcode) /* MVMLE */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = m68k_areg(regs, dstreg) - 0; +{ uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; + m68k_areg(regs, dstreg) -= 16*2; + while (amask) { srca -= 2; put_word(srca, m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; } + while (dmask) { srca -= 2; put_word(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; } + m68k_areg(regs, dstreg) = srca; + CHECK_STACK_POINTER_DECREMENT (); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_48a8_3(uae_u32 opcode) /* MVMLE */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; } + while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_48b0_3(uae_u32 opcode) /* MVMLE */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; } + while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_48b8_3(uae_u32 opcode) /* MVMLE */ +{ +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(4); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; } + while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_48b9_3(uae_u32 opcode) /* MVMLE */ +{ +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = get_ilong(4); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; } + while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(8); +return 8; +} +unsigned long REGPARAM2 op_48c0_3(uae_u32 opcode) /* EXT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u32 dst = (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg(regs, srcreg) = (dst); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_48d0_3(uae_u32 opcode) /* MVMLE */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = m68k_areg(regs, dstreg); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; } + while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_48e0_3(uae_u32 opcode) /* MVMLE */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = m68k_areg(regs, dstreg) - 0; +{ uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff; + m68k_areg(regs, dstreg) -= 16*4; + while (amask) { srca -= 4; put_long(srca, m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; } + while (dmask) { srca -= 4; put_long(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; } + m68k_areg(regs, dstreg) = srca; + CHECK_STACK_POINTER_DECREMENT (); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_48e8_3(uae_u32 opcode) /* MVMLE */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; } + while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_48f0_3(uae_u32 opcode) /* MVMLE */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; } + while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_48f8_3(uae_u32 opcode) /* MVMLE */ +{ +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(4); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; } + while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_48f9_3(uae_u32 opcode) /* MVMLE */ +{ +{ uae_u16 mask = get_iword(2); +{ uaecptr srca = get_ilong(4); +{ uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff; + while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; } + while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(8); +return 8; +} +unsigned long REGPARAM2 op_49c0_3(uae_u32 opcode) /* EXT */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_u32 dst = (uae_s32)(uae_s8)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(dst)) == 0); + SET_NFLG (((uae_s32)(dst)) < 0); + m68k_dreg(regs, srcreg) = (dst); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4a00_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4a10_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_4a18_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_4a20_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_4a28_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4a30_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4a38_3(uae_u32 opcode) /* TST */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4a39_3(uae_u32 opcode) /* TST */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_4a3a_3(uae_u32 opcode) /* TST */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4a3b_3(uae_u32 opcode) /* TST */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4a3c_3(uae_u32 opcode) /* TST */ +{ +{{ uae_s8 src = get_ibyte(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); +}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_4a40_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4a48_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_areg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4a50_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_4a58_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_4a60_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_4a68_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4a70_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4a78_3(uae_u32 opcode) /* TST */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4a79_3(uae_u32 opcode) /* TST */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_4a7a_3(uae_u32 opcode) /* TST */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4a7b_3(uae_u32 opcode) /* TST */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_4a7c_3(uae_u32 opcode) /* TST */ +{ +{{ uae_s16 src = get_iword(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); +}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_4a80_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4a88_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_areg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4a90_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4a98_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4aa0_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4aa8_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4ab0_3(uae_u32 opcode) /* TST */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4ab8_3(uae_u32 opcode) /* TST */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4ab9_3(uae_u32 opcode) /* TST */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_4aba_3(uae_u32 opcode) /* TST */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4abb_3(uae_u32 opcode) /* TST */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4abc_3(uae_u32 opcode) /* TST */ +{ +{{ uae_s32 src = get_ilong(2); + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); +}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_4ac0_3(uae_u32 opcode) /* TAS */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((src) & 0xff); +}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4ad0_3(uae_u32 opcode) /* TAS */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4ad8_3(uae_u32 opcode) /* TAS */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4ae0_3(uae_u32 opcode) /* TAS */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4ae8_3(uae_u32 opcode) /* TAS */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4af0_3(uae_u32 opcode) /* TAS */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4af8_3(uae_u32 opcode) /* TAS */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4af9_3(uae_u32 opcode) /* TAS */ +{ +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + src |= 0x80; + put_byte(srca,src); +}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_4c90_3(uae_u32 opcode) /* MVMEL */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_areg(regs, dstreg); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_4c98_3(uae_u32 opcode) /* MVMEL */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_areg(regs, dstreg); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } + m68k_areg(regs, dstreg) = srca; +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_4ca8_3(uae_u32 opcode) /* MVMEL */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_4cb0_3(uae_u32 opcode) /* MVMEL */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_4cb8_3(uae_u32 opcode) /* MVMEL */ +{ +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_4cb9_3(uae_u32 opcode) /* MVMEL */ +{ +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = get_ilong(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(8); +return 8; +} +unsigned long REGPARAM2 op_4cba_3(uae_u32 opcode) /* MVMEL */ +{ + uae_u32 dstreg = 2; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_getpc () + 4; + srca += (uae_s32)(uae_s16)get_iword(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_4cbb_3(uae_u32 opcode) /* MVMEL */ +{ + uae_u32 dstreg = 3; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(4)); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_4cd0_3(uae_u32 opcode) /* MVMEL */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_areg(regs, dstreg); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_4cd8_3(uae_u32 opcode) /* MVMEL */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_areg(regs, dstreg); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } + m68k_areg(regs, dstreg) = srca; +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_4ce8_3(uae_u32 opcode) /* MVMEL */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_4cf0_3(uae_u32 opcode) /* MVMEL */ +{ + uae_u32 dstreg = opcode & 7; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4)); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_4cf8_3(uae_u32 opcode) /* MVMEL */ +{ +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_4cf9_3(uae_u32 opcode) /* MVMEL */ +{ +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = get_ilong(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(8); +return 8; +} +unsigned long REGPARAM2 op_4cfa_3(uae_u32 opcode) /* MVMEL */ +{ + uae_u32 dstreg = 2; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr srca = m68k_getpc () + 4; + srca += (uae_s32)(uae_s16)get_iword(4); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_4cfb_3(uae_u32 opcode) /* MVMEL */ +{ + uae_u32 dstreg = 3; +{ uae_u16 mask = get_iword(2); + unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff; +{ uaecptr tmppc = m68k_getpc() + 4; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(4)); +{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; } + while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; } +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_4e40_3(uae_u32 opcode) /* TRAP */ +{ + uae_u32 srcreg = (opcode & 15); +{{ uae_u32 src = srcreg; +m68k_incpc(2); + Exception(src+32,0); +}}return 2; +} +unsigned long REGPARAM2 op_4e50_3(uae_u32 opcode) /* LINK */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr olda = m68k_areg(regs, 7) - 4; + m68k_areg (regs, 7) = olda; + if (7 == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 src = m68k_areg(regs, srcreg); + put_long(olda,src); + m68k_areg(regs, srcreg) = (m68k_areg(regs, 7)); + if (srcreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +{ uae_s16 offs = get_iword(2); + m68k_areg(regs, 7) += offs; + CHECK_STACK_POINTER_DECREMENT (); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_4e58_3(uae_u32 opcode) /* UNLK */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s32 src = m68k_areg(regs, srcreg); + m68k_areg(regs, 7) = src; + CHECK_STACK_POINTER_INCREMENT (); +{ uaecptr olda = m68k_areg(regs, 7); +{ uae_s32 old = get_long(olda); + m68k_areg(regs, 7) += 4; + m68k_areg(regs, srcreg) = (old); + if (srcreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_4e60_3(uae_u32 opcode) /* MVR2USP */ +{ + uae_u32 srcreg = (opcode & 7); +{if (!regs.s) { Exception(8,0); goto endlabel795; } +{{ uae_s32 src = m68k_areg(regs, srcreg); + regs.usp = src; +}}}m68k_incpc(2); +endlabel795: ; +return 2; +} +unsigned long REGPARAM2 op_4e68_3(uae_u32 opcode) /* MVUSP2R */ +{ + uae_u32 srcreg = (opcode & 7); +{if (!regs.s) { Exception(8,0); goto endlabel796; } +{{ m68k_areg(regs, srcreg) = (regs.usp); + if (srcreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(2); +endlabel796: ; +return 2; +} +unsigned long REGPARAM2 op_4e70_3(uae_u32 opcode) /* RESET */ +{ +{if (!regs.s) { Exception(8,0); goto endlabel797; } +{ customreset(); +}}m68k_incpc(2); +endlabel797: ; +return 2; +} +unsigned long REGPARAM2 op_4e71_3(uae_u32 opcode) /* NOP */ +{ +{}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_4e72_3(uae_u32 opcode) /* STOP */ +{ +{if (!regs.s) { Exception(8,0); goto endlabel799; } +{{ uae_s16 src = get_iword(2); + regs.sr = src; + MakeFromSR(); + m68k_setstopped(1); +}}}m68k_incpc(4); +endlabel799: ; +return 4; +} +unsigned long REGPARAM2 op_4e73_3(uae_u32 opcode) /* RTE */ +{ +{if (!regs.s) { Exception(8,0); goto endlabel800; } +{{ uaecptr sra = m68k_areg(regs, 7); +{ uae_s16 sr = get_word(sra); + m68k_areg(regs, 7) += 2; +{ uaecptr pca = m68k_areg(regs, 7); +{ uae_s32 pc = get_long(pca); + m68k_areg(regs, 7) += 4; + regs.sr = sr; m68k_do_rte(pc); + MakeFromSR(); +}}}}}}endlabel800: ; +return 8; +} +unsigned long REGPARAM2 op_4e74_3(uae_u32 opcode) /* RTD */ +{ +{ compiler_flush_jsr_stack(); +{ uaecptr pca = m68k_areg(regs, 7); +{ uae_s32 pc = get_long(pca); + m68k_areg(regs, 7) += 4; +{ uae_s16 offs = get_iword(2); + m68k_areg(regs, 7) += offs; + m68k_setpc_rte(pc); +}}}}return 8; +} +unsigned long REGPARAM2 op_4e75_3(uae_u32 opcode) /* RTS */ +{ +{ m68k_do_rts(); +}return 2; +} +unsigned long REGPARAM2 op_4e76_3(uae_u32 opcode) /* TRAPV */ +{ +{m68k_incpc(2); + if (GET_VFLG) { Exception(7,m68k_getpc()); goto endlabel803; } +}endlabel803: ; +return 2; +} +unsigned long REGPARAM2 op_4e77_3(uae_u32 opcode) /* RTR */ +{ +{ compiler_flush_jsr_stack(); + MakeSR(); +{ uaecptr sra = m68k_areg(regs, 7); +{ uae_s16 sr = get_word(sra); + m68k_areg(regs, 7) += 2; +{ uaecptr pca = m68k_areg(regs, 7); +{ uae_s32 pc = get_long(pca); + m68k_areg(regs, 7) += 4; + regs.sr &= 0xFF00; sr &= 0xFF; + regs.sr |= sr; m68k_setpc(pc); + MakeFromSR(); +}}}}}return 8; +} +unsigned long REGPARAM2 op_4e90_3(uae_u32 opcode) /* JSR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +if (!Software_ProcessJSR_Ind (m68k_getpc(), srca)) + m68k_do_jsr(m68k_getpc() + 2, srca); +}}return 2; +} +unsigned long REGPARAM2 op_4ea8_3(uae_u32 opcode) /* JSR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + m68k_do_jsr(m68k_getpc() + 4, srca); +}}return 4; +} +unsigned long REGPARAM2 op_4eb0_3(uae_u32 opcode) /* JSR */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + m68k_do_jsr(m68k_getpc() + 4, srca); +}}return 4; +} +unsigned long REGPARAM2 op_4eb8_3(uae_u32 opcode) /* JSR */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + m68k_do_jsr(m68k_getpc() + 4, srca); +}}return 4; +} +unsigned long REGPARAM2 op_4eb9_3(uae_u32 opcode) /* JSR */ +{ +{{ uaecptr srca = get_ilong(2); + m68k_do_jsr(m68k_getpc() + 6, srca); +}}return 6; +} +unsigned long REGPARAM2 op_4eba_3(uae_u32 opcode) /* JSR */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); + m68k_do_jsr(m68k_getpc() + 4, srca); +}}return 4; +} +unsigned long REGPARAM2 op_4ebb_3(uae_u32 opcode) /* JSR */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); + m68k_do_jsr(m68k_getpc() + 4, srca); +}}return 4; +} +unsigned long REGPARAM2 op_4ed0_3(uae_u32 opcode) /* JMP */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_setpc(srca); +}}return 2; +} +unsigned long REGPARAM2 op_4ee8_3(uae_u32 opcode) /* JMP */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); + m68k_setpc(srca); +}}return 4; +} +unsigned long REGPARAM2 op_4ef0_3(uae_u32 opcode) /* JMP */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); + m68k_setpc(srca); +}}return 4; +} +unsigned long REGPARAM2 op_4ef8_3(uae_u32 opcode) /* JMP */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); + m68k_setpc(srca); +}}return 4; +} +unsigned long REGPARAM2 op_4ef9_3(uae_u32 opcode) /* JMP */ +{ +{{ uaecptr srca = get_ilong(2); + m68k_setpc(srca); +}}return 6; +} +unsigned long REGPARAM2 op_4efa_3(uae_u32 opcode) /* JMP */ +{ +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); + m68k_setpc(srca); +}}return 4; +} +unsigned long REGPARAM2 op_4efb_3(uae_u32 opcode) /* JMP */ +{ +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); + m68k_setpc(srca); +}}return 4; +} +#endif + +#ifdef PART_5 +unsigned long REGPARAM2 op_5000_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5010_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_5018_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_5020_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_5028_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_5030_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_5038_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_5039_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_5040_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5048_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5050_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_5058_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_5060_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_5068_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_5070_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_5078_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_5079_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_5080_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5088_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5090_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_5098_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_50a0_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_50a8_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_50b0_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_50b8_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_50b9_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_50c0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(0) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_50c8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(0)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel846; + } + } +}}}m68k_incpc(4); +endlabel846: ; +return 4; +} +unsigned long REGPARAM2 op_50d0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_50d8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_50e0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_50e8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_50f0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_50f8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_50f9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(0) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_5100_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5110_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_5118_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_5120_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_5128_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_5130_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_5138_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_5139_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_5140_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5148_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5150_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_5158_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_5160_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_5168_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_5170_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_5178_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_5179_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_5180_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5188_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5190_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_5198_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_51a0_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_51a8_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_51b0_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_51b8_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_51b9_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; +{{ uae_u32 src = srcreg; +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_51c0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(1) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_51c8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(1)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel881; + } + } +}}}m68k_incpc(4); +endlabel881: ; +return 4; +} +unsigned long REGPARAM2 op_51d0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_51d8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_51e0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_51e8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_51f0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_51f8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_51f9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(1) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_52c0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(2) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_52c8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(2)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel890; + } + } +}}}m68k_incpc(4); +endlabel890: ; +return 4; +} +unsigned long REGPARAM2 op_52d0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_52d8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_52e0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_52e8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_52f0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_52f8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_52f9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(2) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_53c0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(3) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_53c8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(3)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel899; + } + } +}}}m68k_incpc(4); +endlabel899: ; +return 4; +} +unsigned long REGPARAM2 op_53d0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_53d8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_53e0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_53e8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_53f0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_53f8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_53f9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(3) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_54c0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(4) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_54c8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(4)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel908; + } + } +}}}m68k_incpc(4); +endlabel908: ; +return 4; +} +unsigned long REGPARAM2 op_54d0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_54d8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_54e0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_54e8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_54f0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_54f8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_54f9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(4) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_55c0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(5) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_55c8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(5)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel917; + } + } +}}}m68k_incpc(4); +endlabel917: ; +return 4; +} +unsigned long REGPARAM2 op_55d0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_55d8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_55e0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_55e8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_55f0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_55f8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_55f9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(5) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_56c0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(6) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_56c8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(6)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel926; + } + } +}}}m68k_incpc(4); +endlabel926: ; +return 4; +} +unsigned long REGPARAM2 op_56d0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_56d8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_56e0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_56e8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_56f0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_56f8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_56f9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(6) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_57c0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(7) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_57c8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(7)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel935; + } + } +}}}m68k_incpc(4); +endlabel935: ; +return 4; +} +unsigned long REGPARAM2 op_57d0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_57d8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_57e0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_57e8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_57f0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_57f8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_57f9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(7) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_58c0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(8) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_58c8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(8)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel944; + } + } +}}}m68k_incpc(4); +endlabel944: ; +return 4; +} +unsigned long REGPARAM2 op_58d0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_58d8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_58e0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_58e8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_58f0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_58f8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_58f9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(8) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_59c0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(9) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_59c8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(9)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel953; + } + } +}}}m68k_incpc(4); +endlabel953: ; +return 4; +} +unsigned long REGPARAM2 op_59d0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_59d8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_59e0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_59e8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_59f0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_59f8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_59f9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(9) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_5ac0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(10) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5ac8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(10)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel962; + } + } +}}}m68k_incpc(4); +endlabel962: ; +return 4; +} +unsigned long REGPARAM2 op_5ad0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5ad8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5ae0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5ae8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5af0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5af8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5af9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(10) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_5bc0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(11) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5bc8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(11)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel971; + } + } +}}}m68k_incpc(4); +endlabel971: ; +return 4; +} +unsigned long REGPARAM2 op_5bd0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5bd8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5be0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5be8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5bf0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5bf8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5bf9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(11) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_5cc0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(12) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5cc8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(12)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel980; + } + } +}}}m68k_incpc(4); +endlabel980: ; +return 4; +} +unsigned long REGPARAM2 op_5cd0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5cd8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5ce0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5ce8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5cf0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5cf8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5cf9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(12) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_5dc0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(13) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5dc8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(13)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel989; + } + } +}}}m68k_incpc(4); +endlabel989: ; +return 4; +} +unsigned long REGPARAM2 op_5dd0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5dd8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5de0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5de8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5df0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5df8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5df9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(13) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_5ec0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(14) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5ec8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(14)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel998; + } + } +}}}m68k_incpc(4); +endlabel998: ; +return 4; +} +unsigned long REGPARAM2 op_5ed0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5ed8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5ee0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5ee8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5ef0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5ef8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5ef9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(14) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +#endif + +#ifdef PART_6 +unsigned long REGPARAM2 op_5fc0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{{ int val = cctrue(15) ? 0xff : 0; +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_5fc8_3(uae_u32 opcode) /* DBcc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 offs = get_iword(2); + if (!cctrue(15)) { + m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); + if (src) { + m68k_incpc((uae_s32)offs + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1007; + } + } +}}}m68k_incpc(4); +endlabel1007: ; +return 4; +} +unsigned long REGPARAM2 op_5fd0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5fd8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5fe0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_5fe8_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5ff0_3(uae_u32 opcode) /* Scc */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5ff8_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_5ff9_3(uae_u32 opcode) /* Scc */ +{ +{{ uaecptr srca = get_ilong(2); +{ int val = cctrue(15) ? 0xff : 0; + put_byte(srca,val); +}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_6000_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(0)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1015; +didnt_jump:; +}}m68k_incpc(4); +endlabel1015: ; +return 4; +} +unsigned long REGPARAM2 op_6001_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(0)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1016; +didnt_jump:; +}}m68k_incpc(2); +endlabel1016: ; +return 2; +} +unsigned long REGPARAM2 op_60ff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(0)) goto endlabel1017; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1017; +{ uae_s32 src = get_ilong(2); + if (!cctrue(0)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1017; +didnt_jump:; +}}m68k_incpc(6); +endlabel1017: ; +return 6; +} +unsigned long REGPARAM2 op_6100_3(uae_u32 opcode) /* BSR */ +{ +{{ uae_s16 src = get_iword(2); + uae_s32 s = (uae_s32)src + 2; + m68k_do_bsr(m68k_getpc() + 4, s); +}}return 4; +} +unsigned long REGPARAM2 op_6101_3(uae_u32 opcode) /* BSR */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + uae_s32 s = (uae_s32)src + 2; + m68k_do_bsr(m68k_getpc() + 2, s); +}}return 2; +} +unsigned long REGPARAM2 op_61ff_3(uae_u32 opcode) /* BSR */ +{ +{{ uae_s32 src = get_ilong(2); + uae_s32 s = (uae_s32)src + 2; + m68k_do_bsr(m68k_getpc() + 6, s); +}}return 6; +} +unsigned long REGPARAM2 op_6200_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(2)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1021; +didnt_jump:; +}}m68k_incpc(4); +endlabel1021: ; +return 4; +} +unsigned long REGPARAM2 op_6201_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(2)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1022; +didnt_jump:; +}}m68k_incpc(2); +endlabel1022: ; +return 2; +} +unsigned long REGPARAM2 op_62ff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(2)) goto endlabel1023; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1023; +{ uae_s32 src = get_ilong(2); + if (!cctrue(2)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1023; +didnt_jump:; +}}m68k_incpc(6); +endlabel1023: ; +return 6; +} +unsigned long REGPARAM2 op_6300_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(3)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1024; +didnt_jump:; +}}m68k_incpc(4); +endlabel1024: ; +return 4; +} +unsigned long REGPARAM2 op_6301_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(3)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1025; +didnt_jump:; +}}m68k_incpc(2); +endlabel1025: ; +return 2; +} +unsigned long REGPARAM2 op_63ff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(3)) goto endlabel1026; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1026; +{ uae_s32 src = get_ilong(2); + if (!cctrue(3)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1026; +didnt_jump:; +}}m68k_incpc(6); +endlabel1026: ; +return 6; +} +unsigned long REGPARAM2 op_6400_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(4)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1027; +didnt_jump:; +}}m68k_incpc(4); +endlabel1027: ; +return 4; +} +unsigned long REGPARAM2 op_6401_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(4)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1028; +didnt_jump:; +}}m68k_incpc(2); +endlabel1028: ; +return 2; +} +unsigned long REGPARAM2 op_64ff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(4)) goto endlabel1029; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1029; +{ uae_s32 src = get_ilong(2); + if (!cctrue(4)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1029; +didnt_jump:; +}}m68k_incpc(6); +endlabel1029: ; +return 6; +} +unsigned long REGPARAM2 op_6500_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(5)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1030; +didnt_jump:; +}}m68k_incpc(4); +endlabel1030: ; +return 4; +} +unsigned long REGPARAM2 op_6501_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(5)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1031; +didnt_jump:; +}}m68k_incpc(2); +endlabel1031: ; +return 2; +} +unsigned long REGPARAM2 op_65ff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(5)) goto endlabel1032; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1032; +{ uae_s32 src = get_ilong(2); + if (!cctrue(5)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1032; +didnt_jump:; +}}m68k_incpc(6); +endlabel1032: ; +return 6; +} +unsigned long REGPARAM2 op_6600_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(6)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1033; +didnt_jump:; +}}m68k_incpc(4); +endlabel1033: ; +return 4; +} +unsigned long REGPARAM2 op_6601_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(6)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1034; +didnt_jump:; +}}m68k_incpc(2); +endlabel1034: ; +return 2; +} +unsigned long REGPARAM2 op_66ff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(6)) goto endlabel1035; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1035; +{ uae_s32 src = get_ilong(2); + if (!cctrue(6)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1035; +didnt_jump:; +}}m68k_incpc(6); +endlabel1035: ; +return 6; +} +unsigned long REGPARAM2 op_6700_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(7)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1036; +didnt_jump:; +}}m68k_incpc(4); +endlabel1036: ; +return 4; +} +unsigned long REGPARAM2 op_6701_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(7)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1037; +didnt_jump:; +}}m68k_incpc(2); +endlabel1037: ; +return 2; +} +unsigned long REGPARAM2 op_67ff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(7)) goto endlabel1038; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1038; +{ uae_s32 src = get_ilong(2); + if (!cctrue(7)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1038; +didnt_jump:; +}}m68k_incpc(6); +endlabel1038: ; +return 6; +} +unsigned long REGPARAM2 op_6800_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(8)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1039; +didnt_jump:; +}}m68k_incpc(4); +endlabel1039: ; +return 4; +} +unsigned long REGPARAM2 op_6801_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(8)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1040; +didnt_jump:; +}}m68k_incpc(2); +endlabel1040: ; +return 2; +} +unsigned long REGPARAM2 op_68ff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(8)) goto endlabel1041; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1041; +{ uae_s32 src = get_ilong(2); + if (!cctrue(8)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1041; +didnt_jump:; +}}m68k_incpc(6); +endlabel1041: ; +return 6; +} +unsigned long REGPARAM2 op_6900_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(9)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1042; +didnt_jump:; +}}m68k_incpc(4); +endlabel1042: ; +return 4; +} +unsigned long REGPARAM2 op_6901_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(9)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1043; +didnt_jump:; +}}m68k_incpc(2); +endlabel1043: ; +return 2; +} +unsigned long REGPARAM2 op_69ff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(9)) goto endlabel1044; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1044; +{ uae_s32 src = get_ilong(2); + if (!cctrue(9)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1044; +didnt_jump:; +}}m68k_incpc(6); +endlabel1044: ; +return 6; +} +unsigned long REGPARAM2 op_6a00_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(10)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1045; +didnt_jump:; +}}m68k_incpc(4); +endlabel1045: ; +return 4; +} +unsigned long REGPARAM2 op_6a01_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(10)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1046; +didnt_jump:; +}}m68k_incpc(2); +endlabel1046: ; +return 2; +} +unsigned long REGPARAM2 op_6aff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(10)) goto endlabel1047; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1047; +{ uae_s32 src = get_ilong(2); + if (!cctrue(10)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1047; +didnt_jump:; +}}m68k_incpc(6); +endlabel1047: ; +return 6; +} +unsigned long REGPARAM2 op_6b00_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(11)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1048; +didnt_jump:; +}}m68k_incpc(4); +endlabel1048: ; +return 4; +} +unsigned long REGPARAM2 op_6b01_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(11)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1049; +didnt_jump:; +}}m68k_incpc(2); +endlabel1049: ; +return 2; +} +unsigned long REGPARAM2 op_6bff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(11)) goto endlabel1050; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1050; +{ uae_s32 src = get_ilong(2); + if (!cctrue(11)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1050; +didnt_jump:; +}}m68k_incpc(6); +endlabel1050: ; +return 6; +} +unsigned long REGPARAM2 op_6c00_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(12)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1051; +didnt_jump:; +}}m68k_incpc(4); +endlabel1051: ; +return 4; +} +unsigned long REGPARAM2 op_6c01_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(12)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1052; +didnt_jump:; +}}m68k_incpc(2); +endlabel1052: ; +return 2; +} +unsigned long REGPARAM2 op_6cff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(12)) goto endlabel1053; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1053; +{ uae_s32 src = get_ilong(2); + if (!cctrue(12)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1053; +didnt_jump:; +}}m68k_incpc(6); +endlabel1053: ; +return 6; +} +unsigned long REGPARAM2 op_6d00_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(13)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1054; +didnt_jump:; +}}m68k_incpc(4); +endlabel1054: ; +return 4; +} +unsigned long REGPARAM2 op_6d01_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(13)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1055; +didnt_jump:; +}}m68k_incpc(2); +endlabel1055: ; +return 2; +} +unsigned long REGPARAM2 op_6dff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(13)) goto endlabel1056; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1056; +{ uae_s32 src = get_ilong(2); + if (!cctrue(13)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1056; +didnt_jump:; +}}m68k_incpc(6); +endlabel1056: ; +return 6; +} +unsigned long REGPARAM2 op_6e00_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(14)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1057; +didnt_jump:; +}}m68k_incpc(4); +endlabel1057: ; +return 4; +} +unsigned long REGPARAM2 op_6e01_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(14)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1058; +didnt_jump:; +}}m68k_incpc(2); +endlabel1058: ; +return 2; +} +unsigned long REGPARAM2 op_6eff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(14)) goto endlabel1059; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1059; +{ uae_s32 src = get_ilong(2); + if (!cctrue(14)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1059; +didnt_jump:; +}}m68k_incpc(6); +endlabel1059: ; +return 6; +} +unsigned long REGPARAM2 op_6f00_3(uae_u32 opcode) /* Bcc */ +{ +{{ uae_s16 src = get_iword(2); + if (!cctrue(15)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1060; +didnt_jump:; +}}m68k_incpc(4); +endlabel1060: ; +return 4; +} +unsigned long REGPARAM2 op_6f01_3(uae_u32 opcode) /* Bcc */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); +{{ uae_u32 src = srcreg; + if (!cctrue(15)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1061; +didnt_jump:; +}}m68k_incpc(2); +endlabel1061: ; +return 2; +} +unsigned long REGPARAM2 op_6fff_3(uae_u32 opcode) /* Bcc */ +{ +{ m68k_incpc(2); + if (!cctrue(15)) goto endlabel1062; + last_addr_for_exception_3 = m68k_getpc() + 2; + last_fault_for_exception_3 = m68k_getpc() + 1; + last_op_for_exception_3 = opcode; Exception(3,0); goto endlabel1062; +{ uae_s32 src = get_ilong(2); + if (!cctrue(15)) goto didnt_jump; + m68k_incpc ((uae_s32)src + 2); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2); +#endif + goto endlabel1062; +didnt_jump:; +}}m68k_incpc(6); +endlabel1062: ; +return 6; +} +unsigned long REGPARAM2 op_7000_3(uae_u32 opcode) /* MOVE */ +{ + uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_u32 src = srcreg; +{ CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_8000_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_8010_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_8018_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_8020_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_8028_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_8030_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_8038_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_8039_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_803a_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_803b_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_803c_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_8040_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_8050_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_8058_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_8060_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_8068_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_8070_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_8078_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_8079_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_807a_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_807b_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_807c_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_8080_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_8090_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_8098_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_80a0_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_80a8_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_80b0_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_80b8_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_80b9_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_80ba_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_80bb_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_80bc_3(uae_u32 opcode) /* OR */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_80c0_3(uae_u32 opcode) /* DIVU */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1097; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}m68k_incpc(2); +endlabel1097: ; +return 70; +} +unsigned long REGPARAM2 op_80d0_3(uae_u32 opcode) /* DIVU */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1098; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(2); +endlabel1098: ; +return 72; +} +unsigned long REGPARAM2 op_80d8_3(uae_u32 opcode) /* DIVU */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1099; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(2); +endlabel1099: ; +return 72; +} +unsigned long REGPARAM2 op_80e0_3(uae_u32 opcode) /* DIVU */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1100; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(2); +endlabel1100: ; +return 72; +} +unsigned long REGPARAM2 op_80e8_3(uae_u32 opcode) /* DIVU */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1101; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(4); +endlabel1101: ; +return 74; +} +unsigned long REGPARAM2 op_80f0_3(uae_u32 opcode) /* DIVU */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1102; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(4); +endlabel1102: ; +return 74; +} +unsigned long REGPARAM2 op_80f8_3(uae_u32 opcode) /* DIVU */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1103; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(4); +endlabel1103: ; +return 74; +} +unsigned long REGPARAM2 op_80f9_3(uae_u32 opcode) /* DIVU */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1104; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(6); +endlabel1104: ; +return 76; +} +unsigned long REGPARAM2 op_80fa_3(uae_u32 opcode) /* DIVU */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1105; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(4); +endlabel1105: ; +return 74; +} +unsigned long REGPARAM2 op_80fb_3(uae_u32 opcode) /* DIVU */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1106; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(4); +endlabel1106: ; +return 74; +} +unsigned long REGPARAM2 op_80fc_3(uae_u32 opcode) /* DIVU */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1107; } else { + uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src; + uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src; + if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}m68k_incpc(4); +endlabel1107: ; +return 72; +} +unsigned long REGPARAM2 op_8100_3(uae_u32 opcode) /* SBCD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } + newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90); + COPY_CARRY; + if (cflg) newv -= 0x60; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_8108_3(uae_u32 opcode) /* SBCD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } + newv = newv_hi + (newv_lo & 0xF); SET_CFLG (cflg = (newv_hi & 0x1F0) > 0x90); + COPY_CARRY; + if (cflg) newv -= 0x60; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 8; +} +unsigned long REGPARAM2 op_8110_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_8118_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_8120_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_8128_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_8130_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_8138_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_8139_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_8150_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_8158_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_8160_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_8168_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_8170_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_8178_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_8179_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_8190_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_8198_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_81a0_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_81a8_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_81b0_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_81b8_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_81b9_3(uae_u32 opcode) /* OR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); + src |= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_81c0_3(uae_u32 opcode) /* DIVS */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1131; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}m68k_incpc(2); +endlabel1131: ; +return 74; +} +unsigned long REGPARAM2 op_81d0_3(uae_u32 opcode) /* DIVS */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1132; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(2); +endlabel1132: ; +return 76; +} +unsigned long REGPARAM2 op_81d8_3(uae_u32 opcode) /* DIVS */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1133; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(2); +endlabel1133: ; +return 76; +} +unsigned long REGPARAM2 op_81e0_3(uae_u32 opcode) /* DIVS */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1134; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(2); +endlabel1134: ; +return 76; +} +unsigned long REGPARAM2 op_81e8_3(uae_u32 opcode) /* DIVS */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1135; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(4); +endlabel1135: ; +return 78; +} +unsigned long REGPARAM2 op_81f0_3(uae_u32 opcode) /* DIVS */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1136; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(4); +endlabel1136: ; +return 78; +} +unsigned long REGPARAM2 op_81f8_3(uae_u32 opcode) /* DIVS */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1137; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(4); +endlabel1137: ; +return 78; +} +unsigned long REGPARAM2 op_81f9_3(uae_u32 opcode) /* DIVS */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1138; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(6); +endlabel1138: ; +return 80; +} +unsigned long REGPARAM2 op_81fa_3(uae_u32 opcode) /* DIVS */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1139; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(4); +endlabel1139: ; +return 78; +} +unsigned long REGPARAM2 op_81fb_3(uae_u32 opcode) /* DIVS */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1140; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}}m68k_incpc(4); +endlabel1140: ; +return 78; +} +unsigned long REGPARAM2 op_81fc_3(uae_u32 opcode) /* DIVS */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{ uaecptr oldpc = m68k_getpc(); +{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + if(src == 0) { Exception(5,oldpc); goto endlabel1141; } else { + uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src; + uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src; + if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else + { + if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_NFLG (((uae_s16)(newv)) < 0); + newv = (newv & 0xffff) | ((uae_u32)rem << 16); + m68k_dreg(regs, dstreg) = (newv); + } + } +}}}m68k_incpc(4); +endlabel1141: ; +return 76; +} +unsigned long REGPARAM2 op_9000_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_9010_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_9018_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_9020_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_9028_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_9030_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_9038_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_9039_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_903a_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_903b_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_903c_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_9040_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_9048_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_9050_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_9058_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_9060_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_9068_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_9070_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_9078_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_9079_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_907a_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_907b_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_907c_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_9080_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_9088_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_9090_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_9098_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_90a0_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_90a8_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_90b0_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_90b8_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_90b9_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_90ba_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_90bb_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_90bc_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_90c0_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_90c8_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_90d0_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_90d8_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_90e0_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_90e8_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_90f0_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_90f8_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_90f9_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_90fa_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_90fb_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_90fc_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_9100_3(uae_u32 opcode) /* SUBX */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_9108_3(uae_u32 opcode) /* SUBX */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 8; +} +unsigned long REGPARAM2 op_9110_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_9118_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_9120_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_9128_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_9130_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_9138_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_9139_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_9140_3(uae_u32 opcode) /* SUBX */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_9148_3(uae_u32 opcode) /* SUBX */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 8; +} +unsigned long REGPARAM2 op_9150_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_9158_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_9160_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_9168_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_9170_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_9178_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_9179_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_9180_3(uae_u32 opcode) /* SUBX */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_9188_3(uae_u32 opcode) /* SUBX */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 14; +} +unsigned long REGPARAM2 op_9190_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_9198_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_91a0_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_91a8_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_91b0_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_91b8_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_91b9_3(uae_u32 opcode) /* SUB */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_91c0_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_91c8_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_91d0_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_91d8_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_91e0_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_91e8_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_91f0_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_91f8_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_91f9_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_91fa_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_91fb_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_91fc_3(uae_u32 opcode) /* SUBA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst - src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +}}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_b000_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_b010_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 4; +} +#endif + +#ifdef PART_7 +unsigned long REGPARAM2 op_b018_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_b020_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_b028_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b030_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b038_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b039_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_b03a_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b03b_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b03c_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_b040_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_b048_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_b050_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_b058_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_b060_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_b068_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b070_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b078_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b079_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_b07a_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b07b_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b07c_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_b080_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_b088_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_b090_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b098_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b0a0_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b0a8_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b0b0_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b0b8_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b0b9_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_b0ba_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b0bb_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b0bc_3(uae_u32 opcode) /* CMP */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_b0c0_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_b0c8_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_b0d0_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_b0d8_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_b0e0_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_b0e8_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b0f0_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b0f8_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b0f9_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_b0fa_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b0fb_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_b0fc_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_b100_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_b108_3(uae_u32 opcode) /* CMPM */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b110_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b118_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b120_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b128_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b130_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b138_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b139_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_b140_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_b148_3(uae_u32 opcode) /* CMPM */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b150_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b158_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b160_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b168_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b170_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b178_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b179_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_b180_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_b188_3(uae_u32 opcode) /* CMPM */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_b190_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_b198_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_b1a0_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_b1a8_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_b1b0_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_b1b8_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_b1b9_3(uae_u32 opcode) /* EOR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); + src ^= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_b1c0_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_b1c8_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_b1d0_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b1d8_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b1e0_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_b1e8_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b1f0_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b1f8_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b1f9_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_b1fa_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b1fb_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_b1fc_3(uae_u32 opcode) /* CMPA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs != flgo) && (flgn != flgo)); + SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst))); + SET_NFLG (flgn != 0); +}}}}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_c000_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_c010_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_c018_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_c020_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_c028_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c030_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c038_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c039_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_c03a_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c03b_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c03c_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_c040_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_c050_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_c058_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_c060_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_c068_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c070_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c078_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c079_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_c07a_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c07b_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_c07c_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff); +}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_c080_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_c090_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_c098_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_c0a0_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_c0a8_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_c0b0_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_c0b8_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_c0b9_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_c0ba_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_c0bb_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_c0bc_3(uae_u32 opcode) /* AND */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_c0c0_3(uae_u32 opcode) /* MULU */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); +return 34; +} +unsigned long REGPARAM2 op_c0d0_3(uae_u32 opcode) /* MULU */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); +return 36; +} +unsigned long REGPARAM2 op_c0d8_3(uae_u32 opcode) /* MULU */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); +return 36; +} +unsigned long REGPARAM2 op_c0e0_3(uae_u32 opcode) /* MULU */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); +return 36; +} +unsigned long REGPARAM2 op_c0e8_3(uae_u32 opcode) /* MULU */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); +return 38; +} +unsigned long REGPARAM2 op_c0f0_3(uae_u32 opcode) /* MULU */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); +return 38; +} +unsigned long REGPARAM2 op_c0f8_3(uae_u32 opcode) /* MULU */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); +return 38; +} +unsigned long REGPARAM2 op_c0f9_3(uae_u32 opcode) /* MULU */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(6); +return 40; +} +unsigned long REGPARAM2 op_c0fa_3(uae_u32 opcode) /* MULU */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); +return 38; +} +unsigned long REGPARAM2 op_c0fb_3(uae_u32 opcode) /* MULU */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); +return 38; +} +unsigned long REGPARAM2 op_c0fc_3(uae_u32 opcode) /* MULU */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}m68k_incpc(4); +return 36; +} +unsigned long REGPARAM2 op_c100_3(uae_u32 opcode) /* ABCD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo +=6; } + newv = newv_hi + newv_lo; SET_CFLG (cflg = (newv & 0x1F0) > 0x90); + COPY_CARRY; + if (cflg) newv += 0x60; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_c108_3(uae_u32 opcode) /* ABCD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0); + uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0); + uae_u16 newv; + int cflg; + if (newv_lo > 9) { newv_lo +=6; } + newv = newv_hi + newv_lo; SET_CFLG (cflg = (newv & 0x1F0) > 0x90); + COPY_CARRY; + if (cflg) newv += 0x60; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 8; +} +unsigned long REGPARAM2 op_c110_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_c118_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_c120_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_c128_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_c130_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_c138_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_c139_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s8)(src)) == 0); + SET_NFLG (((uae_s8)(src)) < 0); + put_byte(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_c140_3(uae_u32 opcode) /* EXG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); + m68k_dreg(regs, srcreg) = (dst); + m68k_dreg(regs, dstreg) = (src); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_c148_3(uae_u32 opcode) /* EXG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); + m68k_areg(regs, srcreg) = (dst); + if (srcreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); + m68k_areg(regs, dstreg) = (src); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_c150_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_c158_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_c160_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_c168_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_c170_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_c178_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_c179_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(src)) == 0); + SET_NFLG (((uae_s16)(src)) < 0); + put_word(dsta,src); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_c188_3(uae_u32 opcode) /* EXG */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); + m68k_dreg(regs, srcreg) = (dst); + m68k_areg(regs, dstreg) = (src); + if (dstreg == 7) CHECK_STACK_POINTER_ASSIGNMENT (); +}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_c190_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_c198_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_c1a0_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_c1a8_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_c1b0_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_c1b8_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_c1b9_3(uae_u32 opcode) /* AND */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); + src &= dst; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(src)) == 0); + SET_NFLG (((uae_s32)(src)) < 0); + put_long(dsta,src); +}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_c1c0_3(uae_u32 opcode) /* MULS */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}m68k_incpc(2); +return 34; +} +unsigned long REGPARAM2 op_c1d0_3(uae_u32 opcode) /* MULS */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); +return 36; +} +unsigned long REGPARAM2 op_c1d8_3(uae_u32 opcode) /* MULS */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); +return 36; +} +unsigned long REGPARAM2 op_c1e0_3(uae_u32 opcode) /* MULS */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); +return 36; +} +unsigned long REGPARAM2 op_c1e8_3(uae_u32 opcode) /* MULS */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); +return 38; +} +unsigned long REGPARAM2 op_c1f0_3(uae_u32 opcode) /* MULS */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); +return 38; +} +unsigned long REGPARAM2 op_c1f8_3(uae_u32 opcode) /* MULS */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); +return 38; +} +unsigned long REGPARAM2 op_c1f9_3(uae_u32 opcode) /* MULS */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(6); +return 40; +} +unsigned long REGPARAM2 op_c1fa_3(uae_u32 opcode) /* MULS */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); +return 38; +} +unsigned long REGPARAM2 op_c1fb_3(uae_u32 opcode) /* MULS */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(4); +return 38; +} +unsigned long REGPARAM2 op_c1fc_3(uae_u32 opcode) /* MULS */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src; + CLEAR_CZNV; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}m68k_incpc(4); +return 36; +} +unsigned long REGPARAM2 op_d000_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_d010_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_d018_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s8 src = get_byte(srca); + m68k_areg(regs, srcreg) += areg_byteinc[srcreg]; +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_d020_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_d028_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d030_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d038_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d039_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_d03a_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d03b_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s8 src = get_byte(srca); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d03c_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = get_ibyte(2); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_d040_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_d048_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_d050_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_d058_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_d060_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_d068_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d070_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d078_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d079_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_d07a_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d07b_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d07c_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_d080_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_d088_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_d090_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_d098_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_d0a0_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_d0a8_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d0b0_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d0b8_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d0b9_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_d0ba_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d0bb_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d0bc_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_d0c0_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_d0c8_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_d0d0_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_d0d8_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s16 src = get_word(srca); + m68k_areg(regs, srcreg) += 2; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_d0e0_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(2); +return 4; +} +unsigned long REGPARAM2 op_d0e8_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d0f0_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d0f8_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d0f9_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(6); +return 8; +} +unsigned long REGPARAM2 op_d0fa_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d0fb_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s16 src = get_word(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(4); +return 6; +} +unsigned long REGPARAM2 op_d0fc_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = get_iword(2); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}m68k_incpc(4); +return 4; +} +unsigned long REGPARAM2 op_d100_3(uae_u32 opcode) /* ADDX */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uae_s8 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff); +}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_d108_3(uae_u32 opcode) /* ADDX */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; +{ uae_s8 src = get_byte(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0)); + SET_NFLG (((uae_s8)(newv)) < 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 8; +} +unsigned long REGPARAM2 op_d110_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_d118_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s8 dst = get_byte(dsta); + m68k_areg(regs, dstreg) += areg_byteinc[dstreg]; +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_d120_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg]; +{ uae_s8 dst = get_byte(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_d128_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d130_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d138_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d139_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s8 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s8 dst = get_byte(dsta); +{{uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src)); +{ int flgs = ((uae_s8)(src)) < 0; + int flgo = ((uae_s8)(dst)) < 0; + int flgn = ((uae_s8)(newv)) < 0; + SET_ZFLG (((uae_s8)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_byte(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_d140_3(uae_u32 opcode) /* ADDX */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uae_s16 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff); +}}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_d148_3(uae_u32 opcode) /* ADDX */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 2; +{ uae_s16 src = get_word(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0)); + SET_NFLG (((uae_s16)(newv)) < 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 8; +} +unsigned long REGPARAM2 op_d150_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_d158_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s16 dst = get_word(dsta); + m68k_areg(regs, dstreg) += 2; +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_d160_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 2; +{ uae_s16 dst = get_word(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_d168_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d170_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d178_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d179_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s16 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s16 dst = get_word(dsta); +{{uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src)); +{ int flgs = ((uae_s16)(src)) < 0; + int flgo = ((uae_s16)(dst)) < 0; + int flgn = ((uae_s16)(newv)) < 0; + SET_ZFLG (((uae_s16)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_word(dsta,newv); +}}}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_d180_3(uae_u32 opcode) /* ADDX */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_dreg(regs, dstreg); +{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + m68k_dreg(regs, dstreg) = (newv); +}}}}}m68k_incpc(2); +return 2; +} +#endif + +#ifdef PART_8 +unsigned long REGPARAM2 op_d188_3(uae_u32 opcode) /* ADDX */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn))); + COPY_CARRY; + SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0)); + SET_NFLG (((uae_s32)(newv)) < 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 14; +} +unsigned long REGPARAM2 op_d190_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_d198_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg); +{ uae_s32 dst = get_long(dsta); + m68k_areg(regs, dstreg) += 4; +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_d1a0_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) - 4; +{ uae_s32 dst = get_long(dsta); + m68k_areg (regs, dstreg) = dsta; + if (dstreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(2); +return 10; +} +unsigned long REGPARAM2 op_d1a8_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_d1b0_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2)); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_d1b8_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(4); +return 12; +} +unsigned long REGPARAM2 op_d1b9_3(uae_u32 opcode) /* ADD */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uaecptr dsta = get_ilong(2); +{ uae_s32 dst = get_long(dsta); +{{uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src)); +{ int flgs = ((uae_s32)(src)) < 0; + int flgo = ((uae_s32)(dst)) < 0; + int flgn = ((uae_s32)(newv)) < 0; + SET_ZFLG (((uae_s32)(newv)) == 0); + SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); + SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src))); + COPY_CARRY; + SET_NFLG (flgn != 0); + put_long(dsta,newv); +}}}}}}}m68k_incpc(6); +return 14; +} +unsigned long REGPARAM2 op_d1c0_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_dreg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_d1c8_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = m68k_areg(regs, srcreg); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_d1d0_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_d1d8_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg); +{ uae_s32 src = get_long(srca); + m68k_areg(regs, srcreg) += 4; +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_d1e0_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) - 4; +{ uae_s32 src = get_long(srca); + m68k_areg (regs, srcreg) = srca; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_d1e8_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d1f0_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 srcreg = (opcode & 7); + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d1f8_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d1f9_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = get_ilong(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_d1fa_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr srca = m68k_getpc () + 2; + srca += (uae_s32)(uae_s16)get_iword(2); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d1fb_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uaecptr tmppc = m68k_getpc() + 2; + uaecptr srca = get_disp_ea_000(tmppc, get_iword(2)); +{ uae_s32 src = get_long(srca); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_d1fc_3(uae_u32 opcode) /* ADDA */ +{ + uae_u32 dstreg = (opcode >> 9) & 7; +{{ uae_s32 src = get_ilong(2); +{ uae_s32 dst = m68k_areg(regs, dstreg); +{ uae_u32 newv = dst + src; + m68k_areg(regs, dstreg) = (newv); + if (dstreg == 7) CHECK_STACK_POINTER_INCREMENT (); +}}}}m68k_incpc(6); +return 6; +} +unsigned long REGPARAM2 op_e000_3(uae_u32 opcode) /* ASR */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + uae_u32 sign = (0x80 & val) >> 7; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + val = 0xff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY; + } else { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + val |= (0xff << (8 - cnt)) & (uae_u32)-sign; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e008_3(uae_u32 opcode) /* LSR */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + SET_CFLG ((cnt == 8) & (val >> 7)); + COPY_CARRY; + val = 0; + } else { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e010_3(uae_u32 opcode) /* ROXR */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; +{ cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG; + hival <<= (7 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e018_3(uae_u32 opcode) /* ROR */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u8 val = data; + uae_u32 cmask = 0x80; + cnt &= 63; + if (!cnt) { CFLG = 0; } else { uae_u32 carry; + for(;cnt;--cnt){ + carry=val&1; val = val >> 1; + if(carry) val |= cmask; + } + SET_CFLG (carry); +} + SET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e020_3(uae_u32 opcode) /* ASR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + uae_u32 sign = (0x80 & val) >> 7; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + val = 0xff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY; + } else if (cnt > 0) { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + val |= (0xff << (8 - cnt)) & (uae_u32)-sign; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e028_3(uae_u32 opcode) /* LSR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + SET_CFLG ((cnt == 8) & (val >> 7)); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e030_3(uae_u32 opcode) /* ROXR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 36) cnt -= 36; + if (cnt >= 18) cnt -= 18; + if (cnt >= 9) cnt -= 9; + if (cnt > 0) { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG; + hival <<= (7 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e038_3(uae_u32 opcode) /* ROR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u8 val = data; + uae_u32 cmask = 0x80; + cnt &= 63; + if (!cnt) { CFLG = 0; } else { uae_u32 carry; + for(;cnt;--cnt){ + carry=val&1; val = val >> 1; + if(carry) val |= cmask; + } + SET_CFLG (carry); +} + SET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e040_3(uae_u32 opcode) /* ASR */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = (0x8000 & val) >> 15; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + val = 0xffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY; + } else { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e048_3(uae_u32 opcode) /* LSR */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + SET_CFLG ((cnt == 16) & (val >> 15)); + COPY_CARRY; + val = 0; + } else { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e050_3(uae_u32 opcode) /* ROXR */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; +{ cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG; + hival <<= (15 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e058_3(uae_u32 opcode) /* ROR */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u16 val = data; + uae_u32 cmask = 0x8000; + cnt &= 63; + if (!cnt) { CFLG = 0; } else { uae_u32 carry; + for(;cnt;--cnt){ + carry=val&1; val = val >> 1; + if(carry) val |= cmask; + } + SET_CFLG (carry); +} + SET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e060_3(uae_u32 opcode) /* ASR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = (0x8000 & val) >> 15; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + val = 0xffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY; + } else if (cnt > 0) { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + val |= (0xffff << (16 - cnt)) & (uae_u32)-sign; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e068_3(uae_u32 opcode) /* LSR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + SET_CFLG ((cnt == 16) & (val >> 15)); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e070_3(uae_u32 opcode) /* ROXR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 34) cnt -= 34; + if (cnt >= 17) cnt -= 17; + if (cnt > 0) { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG; + hival <<= (15 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e078_3(uae_u32 opcode) /* ROR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u16 val = data; + uae_u32 cmask = 0x8000; + cnt &= 63; + if (!cnt) { CFLG = 0; } else { uae_u32 carry; + for(;cnt;--cnt){ + carry=val&1; val = val >> 1; + if(carry) val |= cmask; + } + SET_CFLG (carry); +} + SET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e080_3(uae_u32 opcode) /* ASR */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + uae_u32 sign = (0x80000000 & val) >> 31; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + val = 0xffffffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY; + } else { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e088_3(uae_u32 opcode) /* LSR */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + SET_CFLG ((cnt == 32) & (val >> 31)); + COPY_CARRY; + val = 0; + } else { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e090_3(uae_u32 opcode) /* ROXR */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; +{ cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG; + hival <<= (31 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffffffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e098_3(uae_u32 opcode) /* ROR */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + uae_u32 cmask = 0x80000000; + cnt &= 63; + if (!cnt) { CFLG = 0; } else { uae_u32 carry; + for(;cnt;--cnt){ + carry=val&1; val = val >> 1; + if(carry) val |= cmask; + } + SET_CFLG (carry); +} + SET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e0a0_3(uae_u32 opcode) /* ASR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + uae_u32 sign = (0x80000000 & val) >> 31; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + val = 0xffffffff & (uae_u32)-sign; + SET_CFLG (sign); + COPY_CARRY; + } else if (cnt > 0) { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e0a8_3(uae_u32 opcode) /* LSR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + SET_CFLG ((cnt == 32) & (val >> 31)); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + val >>= cnt - 1; + SET_CFLG (val & 1); + COPY_CARRY; + val >>= 1; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e0b0_3(uae_u32 opcode) /* ROXR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 33) cnt -= 33; + if (cnt > 0) { + cnt--; + { + uae_u32 carry; + uae_u32 hival = (val << 1) | GET_XFLG; + hival <<= (31 - cnt); + val >>= cnt; + carry = val & 1; + val >>= 1; + val |= hival; + SET_XFLG (carry); + val &= 0xffffffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e0b8_3(uae_u32 opcode) /* ROR */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + uae_u32 cmask = 0x80000000; + cnt &= 63; + if (!cnt) { CFLG = 0; } else { uae_u32 carry; + for(;cnt;--cnt){ + carry=val&1; val = val >> 1; + if(carry) val |= cmask; + } + SET_CFLG (carry); +} + SET_NFLG ((val & cmask) != 0); SET_ZFLG (val == 0); SET_VFLG (0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e0d0_3(uae_u32 opcode) /* ASRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e0d8_3(uae_u32 opcode) /* ASRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e0e0_3(uae_u32 opcode) /* ASRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e0e8_3(uae_u32 opcode) /* ASRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e0f0_3(uae_u32 opcode) /* ASRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e0f8_3(uae_u32 opcode) /* ASRW */ +{ +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e0f9_3(uae_u32 opcode) /* ASRW */ +{ +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 cflg = val & 1; + val = (val >> 1) | sign; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + SET_CFLG (cflg); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_e100_3(uae_u32 opcode) /* ASL */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + SET_VFLG (val != 0); + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else { + uae_u32 mask = (0xff << (7 - cnt)) & 0xff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY; + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e108_3(uae_u32 opcode) /* LSL */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY; + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e110_3(uae_u32 opcode) /* ROXL */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; +{ cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (7 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e118_3(uae_u32 opcode) /* ROL */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; +{ uae_u32 loval; + cnt &= 7; + loval = val >> (8 - cnt); + val <<= cnt; + val |= loval; + val &= 0xff; + SET_CFLG (val & 1); +} + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e120_3(uae_u32 opcode) /* ASL */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + SET_VFLG (val != 0); + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + uae_u32 mask = (0xff << (7 - cnt)) & 0xff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY; + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e128_3(uae_u32 opcode) /* LSL */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 8) { + SET_CFLG (cnt == 8 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80) >> 7); + COPY_CARRY; + val <<= 1; + val &= 0xff; + } + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e130_3(uae_u32 opcode) /* ROXL */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 36) cnt -= 36; + if (cnt >= 18) cnt -= 18; + if (cnt >= 9) cnt -= 9; + if (cnt > 0) { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (7 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e138_3(uae_u32 opcode) /* ROL */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s8 cnt = m68k_dreg(regs, srcreg); +{ uae_s8 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u8)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt > 0) { + uae_u32 loval; + cnt &= 7; + loval = val >> (8 - cnt); + val <<= cnt; + val |= loval; + val &= 0xff; + SET_CFLG (val & 1); +} + SET_ZFLG (((uae_s8)(val)) == 0); + SET_NFLG (((uae_s8)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e140_3(uae_u32 opcode) /* ASL */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + SET_VFLG (val != 0); + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else { + uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY; + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e148_3(uae_u32 opcode) /* LSL */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else { + val <<= (cnt - 1); + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY; + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e150_3(uae_u32 opcode) /* ROXL */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; +{ cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (15 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e158_3(uae_u32 opcode) /* ROL */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; +{ uae_u32 loval; + cnt &= 15; + loval = val >> (16 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffff; + SET_CFLG (val & 1); +} + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e160_3(uae_u32 opcode) /* ASL */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + SET_VFLG (val != 0); + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY; + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e168_3(uae_u32 opcode) /* LSL */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 16) { + SET_CFLG (cnt == 16 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + val <<= (cnt - 1); + SET_CFLG ((val & 0x8000) >> 15); + COPY_CARRY; + val <<= 1; + val &= 0xffff; + } + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e170_3(uae_u32 opcode) /* ROXL */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 34) cnt -= 34; + if (cnt >= 17) cnt -= 17; + if (cnt > 0) { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (15 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e178_3(uae_u32 opcode) /* ROL */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s16 cnt = m68k_dreg(regs, srcreg); +{ uae_s16 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = (uae_u16)data; + cnt &= 63; + CLEAR_CZNV; + if (cnt > 0) { + uae_u32 loval; + cnt &= 15; + loval = val >> (16 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffff; + SET_CFLG (val & 1); +} + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e180_3(uae_u32 opcode) /* ASL */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + SET_VFLG (val != 0); + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else { + uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY; + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e188_3(uae_u32 opcode) /* LSL */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY; + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e190_3(uae_u32 opcode) /* ROXL */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; +{ cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (31 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffffffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e198_3(uae_u32 opcode) /* ROL */ +{ + uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)]; + uae_u32 dstreg = opcode & 7; +{{ uae_u32 cnt = srcreg; +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; +{ uae_u32 loval; + cnt &= 31; + loval = val >> (32 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffffffff; + SET_CFLG (val & 1); +} + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e1a0_3(uae_u32 opcode) /* ASL */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + SET_VFLG (val != 0); + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff; + SET_VFLG ((val & mask) != mask && (val & mask) != 0); + val <<= cnt - 1; + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY; + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e1a8_3(uae_u32 opcode) /* LSL */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 32) { + SET_CFLG (cnt == 32 ? val & 1 : 0); + COPY_CARRY; + val = 0; + } else if (cnt > 0) { + val <<= (cnt - 1); + SET_CFLG ((val & 0x80000000) >> 31); + COPY_CARRY; + val <<= 1; + val &= 0xffffffff; + } + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e1b0_3(uae_u32 opcode) /* ROXL */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt >= 33) cnt -= 33; + if (cnt > 0) { + cnt--; + { + uae_u32 carry; + uae_u32 loval = val >> (31 - cnt); + carry = loval & 1; + val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1); + SET_XFLG (carry); + val &= 0xffffffff; + } } + SET_CFLG (GET_XFLG); + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e1b8_3(uae_u32 opcode) /* ROL */ +{ + uae_u32 srcreg = ((opcode >> 9) & 7); + uae_u32 dstreg = opcode & 7; +{{ uae_s32 cnt = m68k_dreg(regs, srcreg); +{ uae_s32 data = m68k_dreg(regs, dstreg); +{ uae_u32 val = data; + cnt &= 63; + CLEAR_CZNV; + if (cnt > 0) { + uae_u32 loval; + cnt &= 31; + loval = val >> (32 - cnt); + val <<= cnt; + val |= loval; + val &= 0xffffffff; + SET_CFLG (val & 1); +} + SET_ZFLG (((uae_s32)(val)) == 0); + SET_NFLG (((uae_s32)(val)) < 0); + m68k_dreg(regs, dstreg) = (val); +#if HAS_PROFILING + if (gProfilingEnabled) + ProfileIncrementClock(2*cnt); +#endif +}}}}m68k_incpc(2); +return 2; +} +unsigned long REGPARAM2 op_e1d0_3(uae_u32 opcode) /* ASLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e1d8_3(uae_u32 opcode) /* ASLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e1e0_3(uae_u32 opcode) /* ASLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e1e8_3(uae_u32 opcode) /* ASLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e1f0_3(uae_u32 opcode) /* ASLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e1f8_3(uae_u32 opcode) /* ASLW */ +{ +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e1f9_3(uae_u32 opcode) /* ASLW */ +{ +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 sign = 0x8000 & val; + uae_u32 sign2; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); + sign2 = 0x8000 & val; + SET_CFLG (sign != 0); + COPY_CARRY; + SET_VFLG (GET_VFLG | (sign2 != sign)); + put_word(dataa,val); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_e2d0_3(uae_u32 opcode) /* LSRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e2d8_3(uae_u32 opcode) /* LSRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e2e0_3(uae_u32 opcode) /* LSRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e2e8_3(uae_u32 opcode) /* LSRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e2f0_3(uae_u32 opcode) /* LSRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e2f8_3(uae_u32 opcode) /* LSRW */ +{ +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e2f9_3(uae_u32 opcode) /* LSRW */ +{ +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u32 val = (uae_u16)data; + uae_u32 carry = val & 1; + val >>= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_e3d0_3(uae_u32 opcode) /* LSLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e3d8_3(uae_u32 opcode) /* LSLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e3e0_3(uae_u32 opcode) /* LSLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e3e8_3(uae_u32 opcode) /* LSLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e3f0_3(uae_u32 opcode) /* LSLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e3f8_3(uae_u32 opcode) /* LSLW */ +{ +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e3f9_3(uae_u32 opcode) /* LSLW */ +{ +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_e4d0_3(uae_u32 opcode) /* ROXRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e4d8_3(uae_u32 opcode) /* ROXRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e4e0_3(uae_u32 opcode) /* ROXRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e4e8_3(uae_u32 opcode) /* ROXRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e4f0_3(uae_u32 opcode) /* ROXRW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e4f8_3(uae_u32 opcode) /* ROXRW */ +{ +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e4f9_3(uae_u32 opcode) /* ROXRW */ +{ +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (GET_XFLG) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_e5d0_3(uae_u32 opcode) /* ROXLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e5d8_3(uae_u32 opcode) /* ROXLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e5e0_3(uae_u32 opcode) /* ROXLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e5e8_3(uae_u32 opcode) /* ROXLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e5f0_3(uae_u32 opcode) /* ROXLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e5f8_3(uae_u32 opcode) /* ROXLW */ +{ +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e5f9_3(uae_u32 opcode) /* ROXLW */ +{ +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (GET_XFLG) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + COPY_CARRY; + put_word(dataa,val); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_e6d0_3(uae_u32 opcode) /* RORW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e6d8_3(uae_u32 opcode) /* RORW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e6e0_3(uae_u32 opcode) /* RORW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e6e8_3(uae_u32 opcode) /* RORW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e6f0_3(uae_u32 opcode) /* RORW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e6f8_3(uae_u32 opcode) /* RORW */ +{ +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e6f9_3(uae_u32 opcode) /* RORW */ +{ +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 1; + val >>= 1; + if (carry) val |= 0x8000; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry); + put_word(dataa,val); +}}}}m68k_incpc(6); +return 10; +} +unsigned long REGPARAM2 op_e7d0_3(uae_u32 opcode) /* ROLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e7d8_3(uae_u32 opcode) /* ROLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg); +{ uae_s16 data = get_word(dataa); + m68k_areg(regs, srcreg) += 2; +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e7e0_3(uae_u32 opcode) /* ROLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) - 2; +{ uae_s16 data = get_word(dataa); + m68k_areg (regs, srcreg) = dataa; + if (srcreg == 7) CHECK_STACK_POINTER_DECREMENT (); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(2); +return 6; +} +unsigned long REGPARAM2 op_e7e8_3(uae_u32 opcode) /* ROLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e7f0_3(uae_u32 opcode) /* ROLW */ +{ + uae_u32 srcreg = (opcode & 7); +{{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2)); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e7f8_3(uae_u32 opcode) /* ROLW */ +{ +{{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(4); +return 8; +} +unsigned long REGPARAM2 op_e7f9_3(uae_u32 opcode) /* ROLW */ +{ +{{ uaecptr dataa = get_ilong(2); +{ uae_s16 data = get_word(dataa); +{ uae_u16 val = data; + uae_u32 carry = val & 0x8000; + val <<= 1; + if (carry) val |= 1; + CLEAR_CZNV; + SET_ZFLG (((uae_s16)(val)) == 0); + SET_NFLG (((uae_s16)(val)) < 0); +SET_CFLG (carry >> 15); + put_word(dataa,val); +}}}}m68k_incpc(6); +return 10; +} +#endif + |