/* automatically generated by m68k-misc-auto.sh, do not edit! */

#ifndef _IC_M68K_MISC_H
#define _IC_M68K_MISC_H

/* the register mapping: */
#define TME_M68K_IREG_UNDEF		(-1)
#define TME_M68K_IREG_D0		(0)
#define tme_m68k_ireg_d0		tme_m68k_ireg_uint32(TME_M68K_IREG_D0)
#define TME_M68K_IREG_D1		(1)
#define tme_m68k_ireg_d1		tme_m68k_ireg_uint32(TME_M68K_IREG_D1)
#define TME_M68K_IREG_D2		(2)
#define tme_m68k_ireg_d2		tme_m68k_ireg_uint32(TME_M68K_IREG_D2)
#define TME_M68K_IREG_D3		(3)
#define tme_m68k_ireg_d3		tme_m68k_ireg_uint32(TME_M68K_IREG_D3)
#define TME_M68K_IREG_D4		(4)
#define tme_m68k_ireg_d4		tme_m68k_ireg_uint32(TME_M68K_IREG_D4)
#define TME_M68K_IREG_D5		(5)
#define tme_m68k_ireg_d5		tme_m68k_ireg_uint32(TME_M68K_IREG_D5)
#define TME_M68K_IREG_D6		(6)
#define tme_m68k_ireg_d6		tme_m68k_ireg_uint32(TME_M68K_IREG_D6)
#define TME_M68K_IREG_D7		(7)
#define tme_m68k_ireg_d7		tme_m68k_ireg_uint32(TME_M68K_IREG_D7)
#define TME_M68K_IREG_A0		(8)
#define tme_m68k_ireg_a0		tme_m68k_ireg_uint32(TME_M68K_IREG_A0)
#define TME_M68K_IREG_A1		(9)
#define tme_m68k_ireg_a1		tme_m68k_ireg_uint32(TME_M68K_IREG_A1)
#define TME_M68K_IREG_A2		(10)
#define tme_m68k_ireg_a2		tme_m68k_ireg_uint32(TME_M68K_IREG_A2)
#define TME_M68K_IREG_A3		(11)
#define tme_m68k_ireg_a3		tme_m68k_ireg_uint32(TME_M68K_IREG_A3)
#define TME_M68K_IREG_A4		(12)
#define tme_m68k_ireg_a4		tme_m68k_ireg_uint32(TME_M68K_IREG_A4)
#define TME_M68K_IREG_A5		(13)
#define tme_m68k_ireg_a5		tme_m68k_ireg_uint32(TME_M68K_IREG_A5)
#define TME_M68K_IREG_A6		(14)
#define tme_m68k_ireg_a6		tme_m68k_ireg_uint32(TME_M68K_IREG_A6)
#define TME_M68K_IREG_A7		(15)
#define tme_m68k_ireg_a7		tme_m68k_ireg_uint32(TME_M68K_IREG_A7)
#define TME_M68K_IREG_PC		(16)
#define tme_m68k_ireg_pc		tme_m68k_ireg_uint32(TME_M68K_IREG_PC)
#define TME_M68K_IREG_PC_NEXT		(17)
#define tme_m68k_ireg_pc_next		tme_m68k_ireg_uint32(TME_M68K_IREG_PC_NEXT)
#define TME_M68K_IREG_PC_LAST		(18)
#define tme_m68k_ireg_pc_last		tme_m68k_ireg_uint32(TME_M68K_IREG_PC_LAST)
#define tme_m68k_ireg_sr		tme_m68k_ireg_uint16(19 << 1)
#define tme_m68k_ireg_ccr		tme_m68k_ireg_uint8(19 << 2)
#define TME_M68K_IREG_SHADOW_SR	(20 << 1)
#define tme_m68k_ireg_shadow_sr	tme_m68k_ireg_uint16(TME_M68K_IREG_SHADOW_SR)
#define TME_M68K_IREG_FORMAT_OFFSET	((20 << 1) + 1)
#define tme_m68k_ireg_format_offset	tme_m68k_ireg_uint16(TME_M68K_IREG_FORMAT_OFFSET)
#define TME_M68K_IREG_MEMX32		(21)
#define tme_m68k_ireg_memx32		tme_m68k_ireg_uint32(TME_M68K_IREG_MEMX32)
#define TME_M68K_IREG_MEMX16		(21 << 1)
#define tme_m68k_ireg_memx16		tme_m68k_ireg_uint16(TME_M68K_IREG_MEMX16)
#define TME_M68K_IREG_MEMX8		(21 << 2)
#define tme_m68k_ireg_memx8		tme_m68k_ireg_uint8(TME_M68K_IREG_MEMX8)
#define TME_M68K_IREG_MEMY32		(22)
#define tme_m68k_ireg_memy32		tme_m68k_ireg_uint32(TME_M68K_IREG_MEMY32)
#define TME_M68K_IREG_MEMY16		(22 << 1)
#define tme_m68k_ireg_memy16		tme_m68k_ireg_uint16(TME_M68K_IREG_MEMY16)
#define TME_M68K_IREG_MEMY8		(22 << 2)
#define tme_m68k_ireg_memy8		tme_m68k_ireg_uint8(TME_M68K_IREG_MEMY8)
#define TME_M68K_IREG_MEMZ32		(23)
#define tme_m68k_ireg_memz32		tme_m68k_ireg_uint32(TME_M68K_IREG_MEMZ32)
#define TME_M68K_IREG_MEMZ16		(23 << 1)
#define tme_m68k_ireg_memz16		tme_m68k_ireg_uint16(TME_M68K_IREG_MEMZ16)
#define TME_M68K_IREG_MEMZ8		(23 << 2)
#define tme_m68k_ireg_memz8		tme_m68k_ireg_uint8(TME_M68K_IREG_MEMZ8)
#define TME_M68K_IREG_USP		(24)
#define tme_m68k_ireg_usp		tme_m68k_ireg_uint32(TME_M68K_IREG_USP)
#define TME_M68K_IREG_ISP		(25)
#define tme_m68k_ireg_isp		tme_m68k_ireg_uint32(TME_M68K_IREG_ISP)
#define TME_M68K_IREG_MSP		(26)
#define tme_m68k_ireg_msp		tme_m68k_ireg_uint32(TME_M68K_IREG_MSP)
#define TME_M68K_IREG_SFC		(27)
#define tme_m68k_ireg_sfc		tme_m68k_ireg_uint32(TME_M68K_IREG_SFC)
#define TME_M68K_IREG_DFC		(28)
#define tme_m68k_ireg_dfc		tme_m68k_ireg_uint32(TME_M68K_IREG_DFC)
#define TME_M68K_IREG_VBR		(29)
#define tme_m68k_ireg_vbr		tme_m68k_ireg_uint32(TME_M68K_IREG_VBR)
#define TME_M68K_IREG_CACR		(30)
#define tme_m68k_ireg_cacr		tme_m68k_ireg_uint32(TME_M68K_IREG_CACR)
#define TME_M68K_IREG_CAAR		(31)
#define tme_m68k_ireg_caar		tme_m68k_ireg_uint32(TME_M68K_IREG_CAAR)
#define TME_M68K_IREG32_COUNT		(32)
#define TME_M68K_IREG_IMM32		(32)
#define tme_m68k_ireg_imm32		tme_m68k_ireg_uint32(TME_M68K_IREG_IMM32)
#define TME_M68K_IREG_EA		(35)
#define tme_m68k_ireg_ea		tme_m68k_ireg_uint32(TME_M68K_IREG_EA)
#define TME_M68K_IREG_ZERO		(36)
#define TME_M68K_IREG_ONE		(37)
#define TME_M68K_IREG_TWO		(38)
#define TME_M68K_IREG_THREE		(39)
#define TME_M68K_IREG_FOUR		(40)
#define TME_M68K_IREG_FIVE		(41)
#define TME_M68K_IREG_SIX		(42)
#define TME_M68K_IREG_SEVEN		(43)
#define TME_M68K_IREG_EIGHT		(44)

/* the simple signed and unsigned fetch macros: */
#define _TME_M68K_EXECUTE_FETCH_U16(v) \
  _TME_M68K_EXECUTE_FETCH_16(tme_uint16_t, v)
#define _TME_M68K_EXECUTE_FETCH_U16_FIXED(v, field) \
  _TME_M68K_EXECUTE_FETCH_16_FIXED(tme_uint16_t, v, field)
#define _TME_M68K_EXECUTE_FETCH_S16(v) \
  _TME_M68K_EXECUTE_FETCH_16(tme_int16_t, v)
#define _TME_M68K_EXECUTE_FETCH_U32(v) \
  _TME_M68K_EXECUTE_FETCH_32(tme_uint32_t, v)
#define _TME_M68K_EXECUTE_FETCH_S32(v) \
  _TME_M68K_EXECUTE_FETCH_32(tme_int32_t, v)

#endif /* _IC_M68K_MISC_H */

#ifdef _TME_M68K_EXECUTE_FAST

/* these macros are for the fast executor: */

/* this fetches a 16-bit value for the fast executor: */
#undef _TME_M68K_EXECUTE_FETCH_16
#define _TME_M68K_EXECUTE_FETCH_16(type, v) \
  /* use the raw fetch macro to fetch the value into the variable, \
     and then save it in the instruction buffer.  the save doesn't \
     need to be atomic; no one else can see the instruction buffer. \
     however, the raw fetch macro has already advanced fetch_fast_next, \
     so we need to compensate for that here: */ \
  __TME_M68K_EXECUTE_FETCH_16(type, v); \
  tme_memory_write16(((tme_uint16_t *) ((((tme_uint8_t *) &ic->_tme_m68k_insn_fetch_buffer[0]) - sizeof(tme_uint16_t)) + (fetch_fast_next - ic->_tme_m68k_insn_fetch_fast_start))), (tme_uint16_t) (v), sizeof(tme_uint16_t))

/* this does a raw fetch of a 16-bit value for the fast executor: */
#undef __TME_M68K_EXECUTE_FETCH_16
#define __TME_M68K_EXECUTE_FETCH_16(type, v) \
  /* if we can't do the fast read, we need to redispatch: */ \
  /* NB: checks in tme_m68k_go_slow(), and proper setting of \
     ic->_tme_m68k_insn_fetch_fast_last in _TME_M68K_EXECUTE_NAME(), \
     allow  us to do a simple pointer comparison here, for \
     any fetch size: */ \
  if (__tme_predict_false(fetch_fast_next > ic->_tme_m68k_insn_fetch_fast_last)) \
    goto _tme_m68k_fast_fetch_failed; \
  (v) = ((type) \
         tme_betoh_u16(tme_memory_bus_read16((const tme_shared tme_uint16_t *) fetch_fast_next, \
                                             tlb->tme_m68k_tlb_bus_rwlock, \
                                             sizeof(tme_uint16_t), \
                                             sizeof(tme_uint32_t)))); \
  fetch_fast_next += sizeof(tme_uint16_t)

/* this fetches a 16-bit value at a fixed instruction position
   for the fast executor: */
#undef _TME_M68K_EXECUTE_FETCH_16_FIXED
#define _TME_M68K_EXECUTE_FETCH_16_FIXED(type, v, field) \
  assert(&((struct tme_m68k *) 0)->field \
         == (type *) (((tme_uint8_t *) &((struct tme_m68k *) 0)->_tme_m68k_insn_fetch_buffer[0]) + (fetch_fast_next - ic->_tme_m68k_insn_fetch_fast_start))); \
  __TME_M68K_EXECUTE_FETCH_16(type, v)

/* this fetches a 32-bit value for the fast executor: */
#undef _TME_M68K_EXECUTE_FETCH_32
#define _TME_M68K_EXECUTE_FETCH_32(type, v) \
  /* use the raw fetch macro to fetch the value into the variable, \
     and then save it in the instruction buffer.  the save doesn't \
     need to be atomic; no one else can see the instruction buffer. \
     however, the raw fetch macro has already advanced fetch_fast_next, \
     so we need to compensate for that here: */ \
  __TME_M68K_EXECUTE_FETCH_32(type, v); \
  tme_memory_write32(((tme_uint32_t *) ((((tme_uint8_t *) &ic->_tme_m68k_insn_fetch_buffer[0]) - sizeof(tme_uint32_t)) + (fetch_fast_next - ic->_tme_m68k_insn_fetch_fast_start))), (tme_uint32_t) (v), sizeof(tme_uint16_t))

/* this does a raw fetch of a 32-bit value for the fast executor: */
#undef __TME_M68K_EXECUTE_FETCH_32
#define __TME_M68K_EXECUTE_FETCH_32(type, v) \
  /* if we can't do the fast read, we need to redispatch: */ \
  /* NB: checks in tme_m68k_go_slow(), and proper setting of \
     ic->_tme_m68k_insn_fetch_fast_last in _TME_M68K_EXECUTE_NAME(), \
     allow  us to do a simple pointer comparison here, for \
     any fetch size: */ \
  if (__tme_predict_false(fetch_fast_next > ic->_tme_m68k_insn_fetch_fast_last)) \
    goto _tme_m68k_fast_fetch_failed; \
  (v) = ((type) \
         tme_betoh_u32(tme_memory_bus_read32((const tme_shared tme_uint32_t *) fetch_fast_next, \
                                             tlb->tme_m68k_tlb_bus_rwlock, \
                                             sizeof(tme_uint16_t), \
                                             sizeof(tme_uint32_t)))); \
  fetch_fast_next += sizeof(tme_uint32_t)

#endif /* _TME_M68K_EXECUTE_FAST */

#ifndef _TME_M68K_EXECUTE_FAST

/* these macros are for the slow executor: */

/* this fetches a 16-bit value for the slow executor: */
#undef _TME_M68K_EXECUTE_FETCH_16
#define _TME_M68K_EXECUTE_FETCH_16(type, v) \
  /* macros for the slow executor are simple, because \
     tme_m68k_fetch16() takes care of all endianness, alignment, \
     and atomic issues, and also stores the fetched value in the \
     instruction fetch buffer (if a previous fetch before a fault \
     didn't store all or part of it there already): */ \
  (v) = (type) tme_m68k_fetch16(ic, linear_pc); \
  linear_pc += sizeof(tme_uint16_t)

/* this fetches a 16-bit value at a fixed instruction position
   for the slow executor: */
#undef _TME_M68K_EXECUTE_FETCH_16_FIXED
#define _TME_M68K_EXECUTE_FETCH_16_FIXED(type, v, field) \
  assert(&((struct tme_m68k *) 0)->field \
         == (type *) (((tme_uint8_t *) &((struct tme_m68k *) 0)->_tme_m68k_insn_fetch_buffer[0]) + ic->_tme_m68k_insn_fetch_slow_next)); \
  _TME_M68K_EXECUTE_FETCH_16(type, v)

/* this fetches a 32-bit value for the slow executor: */
#undef _TME_M68K_EXECUTE_FETCH_32
#define _TME_M68K_EXECUTE_FETCH_32(type, v) \
  /* macros for the slow executor are simple, because \
     tme_m68k_fetch32() takes care of all endianness, alignment, \
     and atomic issues, and also stores the fetched value in the \
     instruction fetch buffer (if a previous fetch before a fault \
     didn't store all or part of it there already): */ \
  (v) = (type) tme_m68k_fetch32(ic, linear_pc); \
  linear_pc += sizeof(tme_uint32_t)

#endif /* !_TME_M68K_EXECUTE_FAST */
/* automatically generated by m68k-insns-auto.sh, do not edit! */
_TME_RCSID("$Id: m68k-insns-auto.sh,v 1.26 2009/08/29 19:38:23 fredette Exp $");

TME_M68K_INSN_DECL(tme_m68k_add8);
TME_M68K_INSN_DECL(tme_m68k_sub8);
TME_M68K_INSN_DECL(tme_m68k_cmp8);
TME_M68K_INSN_DECL(tme_m68k_neg8);
TME_M68K_INSN_DECL(tme_m68k_or8);
TME_M68K_INSN_DECL(tme_m68k_and8);
TME_M68K_INSN_DECL(tme_m68k_eor8);
TME_M68K_INSN_DECL(tme_m68k_not8);
TME_M68K_INSN_DECL(tme_m68k_tst8);
TME_M68K_INSN_DECL(tme_m68k_move8);
TME_M68K_INSN_DECL(tme_m68k_clr8);
TME_M68K_INSN_DECL(tme_m68k_negx8);
TME_M68K_INSN_DECL(tme_m68k_addx8);
TME_M68K_INSN_DECL(tme_m68k_subx8);
TME_M68K_INSN_DECL(tme_m68k_cmpm8);
TME_M68K_INSN_DECL(tme_m68k_btst8);
TME_M68K_INSN_DECL(tme_m68k_bchg8);
TME_M68K_INSN_DECL(tme_m68k_bclr8);
TME_M68K_INSN_DECL(tme_m68k_bset8);
TME_M68K_INSN_DECL(tme_m68k_asl8);
TME_M68K_INSN_DECL(tme_m68k_asr8);
TME_M68K_INSN_DECL(tme_m68k_lsl8);
TME_M68K_INSN_DECL(tme_m68k_lsr8);
TME_M68K_INSN_DECL(tme_m68k_rol8);
TME_M68K_INSN_DECL(tme_m68k_ror8);
TME_M68K_INSN_DECL(tme_m68k_roxl8);
TME_M68K_INSN_DECL(tme_m68k_roxr8);
TME_M68K_INSN_DECL(tme_m68k_cas8);
TME_M68K_INSN_DECL(tme_m68k_moves8);
TME_M68K_INSN_DECL(tme_m68k_add16);
TME_M68K_INSN_DECL(tme_m68k_sub16);
TME_M68K_INSN_DECL(tme_m68k_cmp16);
TME_M68K_INSN_DECL(tme_m68k_neg16);
TME_M68K_INSN_DECL(tme_m68k_or16);
TME_M68K_INSN_DECL(tme_m68k_and16);
TME_M68K_INSN_DECL(tme_m68k_eor16);
TME_M68K_INSN_DECL(tme_m68k_not16);
TME_M68K_INSN_DECL(tme_m68k_tst16);
TME_M68K_INSN_DECL(tme_m68k_move16);
TME_M68K_INSN_DECL(tme_m68k_clr16);
TME_M68K_INSN_DECL(tme_m68k_cmpa16);
TME_M68K_INSN_DECL(tme_m68k_negx16);
TME_M68K_INSN_DECL(tme_m68k_addx16);
TME_M68K_INSN_DECL(tme_m68k_subx16);
TME_M68K_INSN_DECL(tme_m68k_cmpm16);
TME_M68K_INSN_DECL(tme_m68k_move_srpd16);
TME_M68K_INSN_DECL(tme_m68k_move_srpi16);
TME_M68K_INSN_DECL(tme_m68k_suba16);
TME_M68K_INSN_DECL(tme_m68k_adda16);
TME_M68K_INSN_DECL(tme_m68k_movea16);
TME_M68K_INSN_DECL(tme_m68k_asl16);
TME_M68K_INSN_DECL(tme_m68k_asr16);
TME_M68K_INSN_DECL(tme_m68k_lsl16);
TME_M68K_INSN_DECL(tme_m68k_lsr16);
TME_M68K_INSN_DECL(tme_m68k_rol16);
TME_M68K_INSN_DECL(tme_m68k_ror16);
TME_M68K_INSN_DECL(tme_m68k_roxl16);
TME_M68K_INSN_DECL(tme_m68k_roxr16);
TME_M68K_INSN_DECL(tme_m68k_movep_rm16);
TME_M68K_INSN_DECL(tme_m68k_movem_rm16);
TME_M68K_INSN_DECL(tme_m68k_movep_mr16);
TME_M68K_INSN_DECL(tme_m68k_movem_mr16);
TME_M68K_INSN_DECL(tme_m68k_chk16);
TME_M68K_INSN_DECL(tme_m68k_cas16);
TME_M68K_INSN_DECL(tme_m68k_cas2_16);
TME_M68K_INSN_DECL(tme_m68k_moves16);
TME_M68K_INSN_DECL(tme_m68k_add32);
TME_M68K_INSN_DECL(tme_m68k_sub32);
TME_M68K_INSN_DECL(tme_m68k_cmp32);
TME_M68K_INSN_DECL(tme_m68k_neg32);
TME_M68K_INSN_DECL(tme_m68k_or32);
TME_M68K_INSN_DECL(tme_m68k_and32);
TME_M68K_INSN_DECL(tme_m68k_eor32);
TME_M68K_INSN_DECL(tme_m68k_not32);
TME_M68K_INSN_DECL(tme_m68k_tst32);
TME_M68K_INSN_DECL(tme_m68k_move32);
TME_M68K_INSN_DECL(tme_m68k_moveq32);
TME_M68K_INSN_DECL(tme_m68k_clr32);
TME_M68K_INSN_DECL(tme_m68k_negx32);
TME_M68K_INSN_DECL(tme_m68k_addx32);
TME_M68K_INSN_DECL(tme_m68k_subx32);
TME_M68K_INSN_DECL(tme_m68k_cmpm32);
TME_M68K_INSN_DECL(tme_m68k_move_srpd32);
TME_M68K_INSN_DECL(tme_m68k_move_srpi32);
TME_M68K_INSN_DECL(tme_m68k_suba32);
TME_M68K_INSN_DECL(tme_m68k_adda32);
TME_M68K_INSN_DECL(tme_m68k_movea32);
TME_M68K_INSN_DECL(tme_m68k_btst32);
TME_M68K_INSN_DECL(tme_m68k_bchg32);
TME_M68K_INSN_DECL(tme_m68k_bclr32);
TME_M68K_INSN_DECL(tme_m68k_bset32);
TME_M68K_INSN_DECL(tme_m68k_asl32);
TME_M68K_INSN_DECL(tme_m68k_asr32);
TME_M68K_INSN_DECL(tme_m68k_lsl32);
TME_M68K_INSN_DECL(tme_m68k_lsr32);
TME_M68K_INSN_DECL(tme_m68k_rol32);
TME_M68K_INSN_DECL(tme_m68k_ror32);
TME_M68K_INSN_DECL(tme_m68k_roxl32);
TME_M68K_INSN_DECL(tme_m68k_roxr32);
TME_M68K_INSN_DECL(tme_m68k_movep_rm32);
TME_M68K_INSN_DECL(tme_m68k_movem_rm32);
TME_M68K_INSN_DECL(tme_m68k_movep_mr32);
TME_M68K_INSN_DECL(tme_m68k_movem_mr32);
TME_M68K_INSN_DECL(tme_m68k_chk32);
TME_M68K_INSN_DECL(tme_m68k_cas32);
TME_M68K_INSN_DECL(tme_m68k_cas2_32);
TME_M68K_INSN_DECL(tme_m68k_moves32);
void tme_m68k_read_memx8 _TME_P((struct tme_m68k *));
void tme_m68k_read_mem8 _TME_P((struct tme_m68k *, int));
#define tme_m68k_read8(ic, t, fc, la, _v, f) \
  tme_m68k_read(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint8_t), f)
void tme_m68k_write_memx8 _TME_P((struct tme_m68k *));
void tme_m68k_write_mem8 _TME_P((struct tme_m68k *, int));
#define tme_m68k_write8(ic, t, fc, la, _v, f) \
  tme_m68k_write(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint8_t), f)
void tme_m68k_read_memx16 _TME_P((struct tme_m68k *));
void tme_m68k_read_mem16 _TME_P((struct tme_m68k *, int));
tme_uint16_t tme_m68k_fetch16 _TME_P((struct tme_m68k *, tme_uint32_t));
void tme_m68k_pop16 _TME_P((struct tme_m68k *, tme_uint16_t *));
#define tme_m68k_read16(ic, t, fc, la, _v, f) \
  tme_m68k_read(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint16_t), f)
void tme_m68k_write_memx16 _TME_P((struct tme_m68k *));
void tme_m68k_write_mem16 _TME_P((struct tme_m68k *, int));
void tme_m68k_push16 _TME_P((struct tme_m68k *, tme_uint16_t ));
#define tme_m68k_write16(ic, t, fc, la, _v, f) \
  tme_m68k_write(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint16_t), f)
void tme_m68k_read_memx32 _TME_P((struct tme_m68k *));
void tme_m68k_read_mem32 _TME_P((struct tme_m68k *, int));
tme_uint32_t tme_m68k_fetch32 _TME_P((struct tme_m68k *, tme_uint32_t));
void tme_m68k_pop32 _TME_P((struct tme_m68k *, tme_uint32_t *));
#define tme_m68k_read32(ic, t, fc, la, _v, f) \
  tme_m68k_read(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint32_t), f)
void tme_m68k_write_memx32 _TME_P((struct tme_m68k *));
void tme_m68k_write_mem32 _TME_P((struct tme_m68k *, int));
void tme_m68k_push32 _TME_P((struct tme_m68k *, tme_uint32_t ));
#define tme_m68k_write32(ic, t, fc, la, _v, f) \
  tme_m68k_write(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint32_t), f)
void tme_m68k_read_mem _TME_P((struct tme_m68k *, tme_uint8_t *, unsigned int));
void tme_m68k_read _TME_P((struct tme_m68k *, struct tme_m68k_tlb *, unsigned int *, tme_uint32_t *, tme_uint8_t *, unsigned int, unsigned int));
void tme_m68k_write_mem _TME_P((struct tme_m68k *, tme_uint8_t *, unsigned int));
void tme_m68k_write _TME_P((struct tme_m68k *, struct tme_m68k_tlb *, unsigned int *, tme_uint32_t *, tme_uint8_t *, unsigned int, unsigned int));
TME_M68K_INSN_DECL(tme_m68k_abcd);
TME_M68K_INSN_DECL(tme_m68k_sbcd);
TME_M68K_INSN_DECL(tme_m68k_nbcd);
TME_M68K_INSN_DECL(tme_m68k_ori_ccr);
TME_M68K_INSN_DECL(tme_m68k_andi_ccr);
TME_M68K_INSN_DECL(tme_m68k_eori_ccr);
TME_M68K_INSN_DECL(tme_m68k_move_to_ccr);
TME_M68K_INSN_DECL(tme_m68k_ori_sr);
TME_M68K_INSN_DECL(tme_m68k_andi_sr);
TME_M68K_INSN_DECL(tme_m68k_eori_sr);
TME_M68K_INSN_DECL(tme_m68k_move_to_sr);
TME_M68K_INSN_DECL(tme_m68k_mulu);
TME_M68K_INSN_DECL(tme_m68k_divu);
TME_M68K_INSN_DECL(tme_m68k_mulul);
TME_M68K_INSN_DECL(tme_m68k_divul);
TME_M68K_INSN_DECL(tme_m68k_muls);
TME_M68K_INSN_DECL(tme_m68k_divs);
TME_M68K_INSN_DECL(tme_m68k_mulsl);
TME_M68K_INSN_DECL(tme_m68k_divsl);
