|
|
1.1 root 1: /* automatically generated by m68k-misc-auto.sh, do not edit! */
2:
3: #ifndef _IC_M68K_MISC_H
4: #define _IC_M68K_MISC_H
5:
6: /* the register mapping: */
7: #define TME_M68K_IREG_UNDEF (-1)
8: #define TME_M68K_IREG_D0 (0)
9: #define tme_m68k_ireg_d0 tme_m68k_ireg_uint32(TME_M68K_IREG_D0)
10: #define TME_M68K_IREG_D1 (1)
11: #define tme_m68k_ireg_d1 tme_m68k_ireg_uint32(TME_M68K_IREG_D1)
12: #define TME_M68K_IREG_D2 (2)
13: #define tme_m68k_ireg_d2 tme_m68k_ireg_uint32(TME_M68K_IREG_D2)
14: #define TME_M68K_IREG_D3 (3)
15: #define tme_m68k_ireg_d3 tme_m68k_ireg_uint32(TME_M68K_IREG_D3)
16: #define TME_M68K_IREG_D4 (4)
17: #define tme_m68k_ireg_d4 tme_m68k_ireg_uint32(TME_M68K_IREG_D4)
18: #define TME_M68K_IREG_D5 (5)
19: #define tme_m68k_ireg_d5 tme_m68k_ireg_uint32(TME_M68K_IREG_D5)
20: #define TME_M68K_IREG_D6 (6)
21: #define tme_m68k_ireg_d6 tme_m68k_ireg_uint32(TME_M68K_IREG_D6)
22: #define TME_M68K_IREG_D7 (7)
23: #define tme_m68k_ireg_d7 tme_m68k_ireg_uint32(TME_M68K_IREG_D7)
24: #define TME_M68K_IREG_A0 (8)
25: #define tme_m68k_ireg_a0 tme_m68k_ireg_uint32(TME_M68K_IREG_A0)
26: #define TME_M68K_IREG_A1 (9)
27: #define tme_m68k_ireg_a1 tme_m68k_ireg_uint32(TME_M68K_IREG_A1)
28: #define TME_M68K_IREG_A2 (10)
29: #define tme_m68k_ireg_a2 tme_m68k_ireg_uint32(TME_M68K_IREG_A2)
30: #define TME_M68K_IREG_A3 (11)
31: #define tme_m68k_ireg_a3 tme_m68k_ireg_uint32(TME_M68K_IREG_A3)
32: #define TME_M68K_IREG_A4 (12)
33: #define tme_m68k_ireg_a4 tme_m68k_ireg_uint32(TME_M68K_IREG_A4)
34: #define TME_M68K_IREG_A5 (13)
35: #define tme_m68k_ireg_a5 tme_m68k_ireg_uint32(TME_M68K_IREG_A5)
36: #define TME_M68K_IREG_A6 (14)
37: #define tme_m68k_ireg_a6 tme_m68k_ireg_uint32(TME_M68K_IREG_A6)
38: #define TME_M68K_IREG_A7 (15)
39: #define tme_m68k_ireg_a7 tme_m68k_ireg_uint32(TME_M68K_IREG_A7)
40: #define TME_M68K_IREG_PC (16)
41: #define tme_m68k_ireg_pc tme_m68k_ireg_uint32(TME_M68K_IREG_PC)
42: #define TME_M68K_IREG_PC_NEXT (17)
43: #define tme_m68k_ireg_pc_next tme_m68k_ireg_uint32(TME_M68K_IREG_PC_NEXT)
1.1.1.3 root 44: #define TME_M68K_IREG_PC_LAST (18)
45: #define tme_m68k_ireg_pc_last tme_m68k_ireg_uint32(TME_M68K_IREG_PC_LAST)
46: #define tme_m68k_ireg_sr tme_m68k_ireg_uint16(19 << 1)
47: #define tme_m68k_ireg_ccr tme_m68k_ireg_uint8(19 << 2)
48: #define TME_M68K_IREG_SHADOW_SR (20 << 1)
1.1 root 49: #define tme_m68k_ireg_shadow_sr tme_m68k_ireg_uint16(TME_M68K_IREG_SHADOW_SR)
1.1.1.3 root 50: #define TME_M68K_IREG_FORMAT_OFFSET ((20 << 1) + 1)
1.1 root 51: #define tme_m68k_ireg_format_offset tme_m68k_ireg_uint16(TME_M68K_IREG_FORMAT_OFFSET)
1.1.1.3 root 52: #define TME_M68K_IREG_MEMX32 (21)
1.1 root 53: #define tme_m68k_ireg_memx32 tme_m68k_ireg_uint32(TME_M68K_IREG_MEMX32)
1.1.1.3 root 54: #define TME_M68K_IREG_MEMX16 (21 << 1)
1.1 root 55: #define tme_m68k_ireg_memx16 tme_m68k_ireg_uint16(TME_M68K_IREG_MEMX16)
1.1.1.3 root 56: #define TME_M68K_IREG_MEMX8 (21 << 2)
1.1 root 57: #define tme_m68k_ireg_memx8 tme_m68k_ireg_uint8(TME_M68K_IREG_MEMX8)
1.1.1.3 root 58: #define TME_M68K_IREG_MEMY32 (22)
1.1 root 59: #define tme_m68k_ireg_memy32 tme_m68k_ireg_uint32(TME_M68K_IREG_MEMY32)
1.1.1.3 root 60: #define TME_M68K_IREG_MEMY16 (22 << 1)
1.1 root 61: #define tme_m68k_ireg_memy16 tme_m68k_ireg_uint16(TME_M68K_IREG_MEMY16)
1.1.1.3 root 62: #define TME_M68K_IREG_MEMY8 (22 << 2)
1.1 root 63: #define tme_m68k_ireg_memy8 tme_m68k_ireg_uint8(TME_M68K_IREG_MEMY8)
1.1.1.3 root 64: #define TME_M68K_IREG_MEMZ32 (23)
1.1 root 65: #define tme_m68k_ireg_memz32 tme_m68k_ireg_uint32(TME_M68K_IREG_MEMZ32)
1.1.1.3 root 66: #define TME_M68K_IREG_MEMZ16 (23 << 1)
1.1 root 67: #define tme_m68k_ireg_memz16 tme_m68k_ireg_uint16(TME_M68K_IREG_MEMZ16)
1.1.1.3 root 68: #define TME_M68K_IREG_MEMZ8 (23 << 2)
1.1 root 69: #define tme_m68k_ireg_memz8 tme_m68k_ireg_uint8(TME_M68K_IREG_MEMZ8)
1.1.1.3 root 70: #define TME_M68K_IREG_USP (24)
1.1 root 71: #define tme_m68k_ireg_usp tme_m68k_ireg_uint32(TME_M68K_IREG_USP)
1.1.1.3 root 72: #define TME_M68K_IREG_ISP (25)
1.1 root 73: #define tme_m68k_ireg_isp tme_m68k_ireg_uint32(TME_M68K_IREG_ISP)
1.1.1.3 root 74: #define TME_M68K_IREG_MSP (26)
1.1 root 75: #define tme_m68k_ireg_msp tme_m68k_ireg_uint32(TME_M68K_IREG_MSP)
1.1.1.3 root 76: #define TME_M68K_IREG_SFC (27)
1.1 root 77: #define tme_m68k_ireg_sfc tme_m68k_ireg_uint32(TME_M68K_IREG_SFC)
1.1.1.3 root 78: #define TME_M68K_IREG_DFC (28)
1.1 root 79: #define tme_m68k_ireg_dfc tme_m68k_ireg_uint32(TME_M68K_IREG_DFC)
1.1.1.3 root 80: #define TME_M68K_IREG_VBR (29)
1.1 root 81: #define tme_m68k_ireg_vbr tme_m68k_ireg_uint32(TME_M68K_IREG_VBR)
1.1.1.3 root 82: #define TME_M68K_IREG_CACR (30)
83: #define tme_m68k_ireg_cacr tme_m68k_ireg_uint32(TME_M68K_IREG_CACR)
84: #define TME_M68K_IREG_CAAR (31)
85: #define tme_m68k_ireg_caar tme_m68k_ireg_uint32(TME_M68K_IREG_CAAR)
86: #define TME_M68K_IREG32_COUNT (32)
87: #define TME_M68K_IREG_IMM32 (32)
88: #define tme_m68k_ireg_imm32 tme_m68k_ireg_uint32(TME_M68K_IREG_IMM32)
1.1.1.4 ! root 89: #define TME_M68K_IREG_EA (35)
1.1.1.3 root 90: #define tme_m68k_ireg_ea tme_m68k_ireg_uint32(TME_M68K_IREG_EA)
1.1.1.4 ! root 91: #define TME_M68K_IREG_ZERO (36)
! 92: #define TME_M68K_IREG_ONE (37)
! 93: #define TME_M68K_IREG_TWO (38)
! 94: #define TME_M68K_IREG_THREE (39)
! 95: #define TME_M68K_IREG_FOUR (40)
! 96: #define TME_M68K_IREG_FIVE (41)
! 97: #define TME_M68K_IREG_SIX (42)
! 98: #define TME_M68K_IREG_SEVEN (43)
! 99: #define TME_M68K_IREG_EIGHT (44)
! 100:
! 101: /* the simple signed and unsigned fetch macros: */
! 102: #define _TME_M68K_EXECUTE_FETCH_U16(v) \
! 103: _TME_M68K_EXECUTE_FETCH_16(tme_uint16_t, v)
! 104: #define _TME_M68K_EXECUTE_FETCH_U16_FIXED(v, field) \
! 105: _TME_M68K_EXECUTE_FETCH_16_FIXED(tme_uint16_t, v, field)
! 106: #define _TME_M68K_EXECUTE_FETCH_S16(v) \
! 107: _TME_M68K_EXECUTE_FETCH_16(tme_int16_t, v)
! 108: #define _TME_M68K_EXECUTE_FETCH_U32(v) \
! 109: _TME_M68K_EXECUTE_FETCH_32(tme_uint32_t, v)
! 110: #define _TME_M68K_EXECUTE_FETCH_S32(v) \
! 111: _TME_M68K_EXECUTE_FETCH_32(tme_int32_t, v)
1.1 root 112:
113: #endif /* _IC_M68K_MISC_H */
114:
115: #ifdef _TME_M68K_EXECUTE_FAST
116:
117: /* these macros are for the fast executor: */
118:
1.1.1.4 ! root 119: /* this fetches a 16-bit value for the fast executor: */
! 120: #undef _TME_M68K_EXECUTE_FETCH_16
! 121: #define _TME_M68K_EXECUTE_FETCH_16(type, v) \
! 122: /* use the raw fetch macro to fetch the value into the variable, \
! 123: and then save it in the instruction buffer. the save doesn't \
! 124: need to be atomic; no one else can see the instruction buffer. \
! 125: however, the raw fetch macro has already advanced fetch_fast_next, \
! 126: so we need to compensate for that here: */ \
! 127: __TME_M68K_EXECUTE_FETCH_16(type, v); \
! 128: 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))
! 129:
! 130: /* this does a raw fetch of a 16-bit value for the fast executor: */
! 131: #undef __TME_M68K_EXECUTE_FETCH_16
! 132: #define __TME_M68K_EXECUTE_FETCH_16(type, v) \
! 133: /* if we can't do the fast read, we need to redispatch: */ \
! 134: /* NB: checks in tme_m68k_go_slow(), and proper setting of \
! 135: ic->_tme_m68k_insn_fetch_fast_last in _TME_M68K_EXECUTE_NAME(), \
! 136: allow us to do a simple pointer comparison here, for \
! 137: any fetch size: */ \
! 138: if (__tme_predict_false(fetch_fast_next > ic->_tme_m68k_insn_fetch_fast_last)) \
1.1 root 139: goto _tme_m68k_fast_fetch_failed; \
1.1.1.4 ! root 140: (v) = ((type) \
! 141: tme_betoh_u16(tme_memory_bus_read16((const tme_shared tme_uint16_t *) fetch_fast_next, \
! 142: tlb->tme_m68k_tlb_bus_rwlock, \
! 143: sizeof(tme_uint16_t), \
! 144: sizeof(tme_uint32_t)))); \
! 145: fetch_fast_next += sizeof(tme_uint16_t)
! 146:
! 147: /* this fetches a 16-bit value at a fixed instruction position
! 148: for the fast executor: */
! 149: #undef _TME_M68K_EXECUTE_FETCH_16_FIXED
! 150: #define _TME_M68K_EXECUTE_FETCH_16_FIXED(type, v, field) \
! 151: assert(&((struct tme_m68k *) 0)->field \
! 152: == (type *) (((tme_uint8_t *) &((struct tme_m68k *) 0)->_tme_m68k_insn_fetch_buffer[0]) + (fetch_fast_next - ic->_tme_m68k_insn_fetch_fast_start))); \
! 153: __TME_M68K_EXECUTE_FETCH_16(type, v)
! 154:
! 155: /* this fetches a 32-bit value for the fast executor: */
! 156: #undef _TME_M68K_EXECUTE_FETCH_32
! 157: #define _TME_M68K_EXECUTE_FETCH_32(type, v) \
! 158: /* use the raw fetch macro to fetch the value into the variable, \
! 159: and then save it in the instruction buffer. the save doesn't \
! 160: need to be atomic; no one else can see the instruction buffer. \
! 161: however, the raw fetch macro has already advanced fetch_fast_next, \
! 162: so we need to compensate for that here: */ \
! 163: __TME_M68K_EXECUTE_FETCH_32(type, v); \
! 164: 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))
! 165:
! 166: /* this does a raw fetch of a 32-bit value for the fast executor: */
! 167: #undef __TME_M68K_EXECUTE_FETCH_32
! 168: #define __TME_M68K_EXECUTE_FETCH_32(type, v) \
! 169: /* if we can't do the fast read, we need to redispatch: */ \
! 170: /* NB: checks in tme_m68k_go_slow(), and proper setting of \
! 171: ic->_tme_m68k_insn_fetch_fast_last in _TME_M68K_EXECUTE_NAME(), \
! 172: allow us to do a simple pointer comparison here, for \
! 173: any fetch size: */ \
! 174: if (__tme_predict_false(fetch_fast_next > ic->_tme_m68k_insn_fetch_fast_last)) \
1.1 root 175: goto _tme_m68k_fast_fetch_failed; \
1.1.1.4 ! root 176: (v) = ((type) \
! 177: tme_betoh_u32(tme_memory_bus_read32((const tme_shared tme_uint32_t *) fetch_fast_next, \
! 178: tlb->tme_m68k_tlb_bus_rwlock, \
! 179: sizeof(tme_uint16_t), \
! 180: sizeof(tme_uint32_t)))); \
! 181: fetch_fast_next += sizeof(tme_uint32_t)
1.1 root 182:
183: #endif /* _TME_M68K_EXECUTE_FAST */
184:
185: #ifndef _TME_M68K_EXECUTE_FAST
186:
187: /* these macros are for the slow executor: */
188:
1.1.1.4 ! root 189: /* this fetches a 16-bit value for the slow executor: */
! 190: #undef _TME_M68K_EXECUTE_FETCH_16
! 191: #define _TME_M68K_EXECUTE_FETCH_16(type, v) \
! 192: /* macros for the slow executor are simple, because \
! 193: tme_m68k_fetch16() takes care of all endianness, alignment, \
! 194: and atomic issues, and also stores the fetched value in the \
! 195: instruction fetch buffer (if a previous fetch before a fault \
! 196: didn't store all or part of it there already): */ \
! 197: (v) = (type) tme_m68k_fetch16(ic, linear_pc); \
1.1 root 198: linear_pc += sizeof(tme_uint16_t)
199:
1.1.1.4 ! root 200: /* this fetches a 16-bit value at a fixed instruction position
! 201: for the slow executor: */
! 202: #undef _TME_M68K_EXECUTE_FETCH_16_FIXED
! 203: #define _TME_M68K_EXECUTE_FETCH_16_FIXED(type, v, field) \
! 204: assert(&((struct tme_m68k *) 0)->field \
! 205: == (type *) (((tme_uint8_t *) &((struct tme_m68k *) 0)->_tme_m68k_insn_fetch_buffer[0]) + ic->_tme_m68k_insn_fetch_slow_next)); \
! 206: _TME_M68K_EXECUTE_FETCH_16(type, v)
! 207:
! 208: /* this fetches a 32-bit value for the slow executor: */
! 209: #undef _TME_M68K_EXECUTE_FETCH_32
! 210: #define _TME_M68K_EXECUTE_FETCH_32(type, v) \
! 211: /* macros for the slow executor are simple, because \
! 212: tme_m68k_fetch32() takes care of all endianness, alignment, \
! 213: and atomic issues, and also stores the fetched value in the \
! 214: instruction fetch buffer (if a previous fetch before a fault \
! 215: didn't store all or part of it there already): */ \
! 216: (v) = (type) tme_m68k_fetch32(ic, linear_pc); \
1.1 root 217: linear_pc += sizeof(tme_uint32_t)
218:
219: #endif /* !_TME_M68K_EXECUTE_FAST */
220: /* automatically generated by m68k-insns-auto.sh, do not edit! */
1.1.1.4 ! root 221: _TME_RCSID("$Id: m68k-insns-auto.sh,v 1.25 2007/08/25 21:47:00 fredette Exp $");
1.1 root 222:
223: TME_M68K_INSN_DECL(tme_m68k_add8);
224: TME_M68K_INSN_DECL(tme_m68k_sub8);
225: TME_M68K_INSN_DECL(tme_m68k_cmp8);
226: TME_M68K_INSN_DECL(tme_m68k_neg8);
227: TME_M68K_INSN_DECL(tme_m68k_or8);
228: TME_M68K_INSN_DECL(tme_m68k_and8);
229: TME_M68K_INSN_DECL(tme_m68k_eor8);
230: TME_M68K_INSN_DECL(tme_m68k_not8);
231: TME_M68K_INSN_DECL(tme_m68k_tst8);
232: TME_M68K_INSN_DECL(tme_m68k_move8);
233: TME_M68K_INSN_DECL(tme_m68k_clr8);
234: TME_M68K_INSN_DECL(tme_m68k_negx8);
235: TME_M68K_INSN_DECL(tme_m68k_addx8);
236: TME_M68K_INSN_DECL(tme_m68k_subx8);
237: TME_M68K_INSN_DECL(tme_m68k_cmpm8);
238: TME_M68K_INSN_DECL(tme_m68k_btst8);
239: TME_M68K_INSN_DECL(tme_m68k_bchg8);
240: TME_M68K_INSN_DECL(tme_m68k_bclr8);
241: TME_M68K_INSN_DECL(tme_m68k_bset8);
242: TME_M68K_INSN_DECL(tme_m68k_asl8);
243: TME_M68K_INSN_DECL(tme_m68k_asr8);
244: TME_M68K_INSN_DECL(tme_m68k_lsl8);
245: TME_M68K_INSN_DECL(tme_m68k_lsr8);
246: TME_M68K_INSN_DECL(tme_m68k_rol8);
247: TME_M68K_INSN_DECL(tme_m68k_ror8);
248: TME_M68K_INSN_DECL(tme_m68k_roxl8);
249: TME_M68K_INSN_DECL(tme_m68k_roxr8);
250: TME_M68K_INSN_DECL(tme_m68k_cas8);
251: TME_M68K_INSN_DECL(tme_m68k_moves8);
252: TME_M68K_INSN_DECL(tme_m68k_add16);
253: TME_M68K_INSN_DECL(tme_m68k_sub16);
254: TME_M68K_INSN_DECL(tme_m68k_cmp16);
255: TME_M68K_INSN_DECL(tme_m68k_neg16);
256: TME_M68K_INSN_DECL(tme_m68k_or16);
257: TME_M68K_INSN_DECL(tme_m68k_and16);
258: TME_M68K_INSN_DECL(tme_m68k_eor16);
259: TME_M68K_INSN_DECL(tme_m68k_not16);
260: TME_M68K_INSN_DECL(tme_m68k_tst16);
261: TME_M68K_INSN_DECL(tme_m68k_move16);
262: TME_M68K_INSN_DECL(tme_m68k_clr16);
263: TME_M68K_INSN_DECL(tme_m68k_cmpa16);
264: TME_M68K_INSN_DECL(tme_m68k_negx16);
265: TME_M68K_INSN_DECL(tme_m68k_addx16);
266: TME_M68K_INSN_DECL(tme_m68k_subx16);
267: TME_M68K_INSN_DECL(tme_m68k_cmpm16);
1.1.1.4 ! root 268: TME_M68K_INSN_DECL(tme_m68k_move_srpd16);
! 269: TME_M68K_INSN_DECL(tme_m68k_move_srpi16);
1.1 root 270: TME_M68K_INSN_DECL(tme_m68k_suba16);
271: TME_M68K_INSN_DECL(tme_m68k_adda16);
272: TME_M68K_INSN_DECL(tme_m68k_movea16);
273: TME_M68K_INSN_DECL(tme_m68k_asl16);
274: TME_M68K_INSN_DECL(tme_m68k_asr16);
275: TME_M68K_INSN_DECL(tme_m68k_lsl16);
276: TME_M68K_INSN_DECL(tme_m68k_lsr16);
277: TME_M68K_INSN_DECL(tme_m68k_rol16);
278: TME_M68K_INSN_DECL(tme_m68k_ror16);
279: TME_M68K_INSN_DECL(tme_m68k_roxl16);
280: TME_M68K_INSN_DECL(tme_m68k_roxr16);
281: TME_M68K_INSN_DECL(tme_m68k_movep_rm16);
282: TME_M68K_INSN_DECL(tme_m68k_movem_rm16);
283: TME_M68K_INSN_DECL(tme_m68k_movep_mr16);
284: TME_M68K_INSN_DECL(tme_m68k_movem_mr16);
285: TME_M68K_INSN_DECL(tme_m68k_chk16);
286: TME_M68K_INSN_DECL(tme_m68k_cas16);
287: TME_M68K_INSN_DECL(tme_m68k_cas2_16);
288: TME_M68K_INSN_DECL(tme_m68k_moves16);
289: TME_M68K_INSN_DECL(tme_m68k_add32);
290: TME_M68K_INSN_DECL(tme_m68k_sub32);
291: TME_M68K_INSN_DECL(tme_m68k_cmp32);
292: TME_M68K_INSN_DECL(tme_m68k_neg32);
293: TME_M68K_INSN_DECL(tme_m68k_or32);
294: TME_M68K_INSN_DECL(tme_m68k_and32);
295: TME_M68K_INSN_DECL(tme_m68k_eor32);
296: TME_M68K_INSN_DECL(tme_m68k_not32);
297: TME_M68K_INSN_DECL(tme_m68k_tst32);
298: TME_M68K_INSN_DECL(tme_m68k_move32);
299: TME_M68K_INSN_DECL(tme_m68k_moveq32);
300: TME_M68K_INSN_DECL(tme_m68k_clr32);
301: TME_M68K_INSN_DECL(tme_m68k_negx32);
302: TME_M68K_INSN_DECL(tme_m68k_addx32);
303: TME_M68K_INSN_DECL(tme_m68k_subx32);
304: TME_M68K_INSN_DECL(tme_m68k_cmpm32);
1.1.1.4 ! root 305: TME_M68K_INSN_DECL(tme_m68k_move_srpd32);
! 306: TME_M68K_INSN_DECL(tme_m68k_move_srpi32);
1.1 root 307: TME_M68K_INSN_DECL(tme_m68k_suba32);
308: TME_M68K_INSN_DECL(tme_m68k_adda32);
309: TME_M68K_INSN_DECL(tme_m68k_movea32);
310: TME_M68K_INSN_DECL(tme_m68k_btst32);
311: TME_M68K_INSN_DECL(tme_m68k_bchg32);
312: TME_M68K_INSN_DECL(tme_m68k_bclr32);
313: TME_M68K_INSN_DECL(tme_m68k_bset32);
314: TME_M68K_INSN_DECL(tme_m68k_asl32);
315: TME_M68K_INSN_DECL(tme_m68k_asr32);
316: TME_M68K_INSN_DECL(tme_m68k_lsl32);
317: TME_M68K_INSN_DECL(tme_m68k_lsr32);
318: TME_M68K_INSN_DECL(tme_m68k_rol32);
319: TME_M68K_INSN_DECL(tme_m68k_ror32);
320: TME_M68K_INSN_DECL(tme_m68k_roxl32);
321: TME_M68K_INSN_DECL(tme_m68k_roxr32);
322: TME_M68K_INSN_DECL(tme_m68k_movep_rm32);
323: TME_M68K_INSN_DECL(tme_m68k_movem_rm32);
324: TME_M68K_INSN_DECL(tme_m68k_movep_mr32);
325: TME_M68K_INSN_DECL(tme_m68k_movem_mr32);
326: TME_M68K_INSN_DECL(tme_m68k_chk32);
327: TME_M68K_INSN_DECL(tme_m68k_cas32);
328: TME_M68K_INSN_DECL(tme_m68k_cas2_32);
329: TME_M68K_INSN_DECL(tme_m68k_moves32);
330: void tme_m68k_read_memx8 _TME_P((struct tme_m68k *));
331: void tme_m68k_read_mem8 _TME_P((struct tme_m68k *, int));
332: #define tme_m68k_read8(ic, t, fc, la, _v, f) \
333: tme_m68k_read(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint8_t), f)
334: void tme_m68k_write_memx8 _TME_P((struct tme_m68k *));
335: void tme_m68k_write_mem8 _TME_P((struct tme_m68k *, int));
336: #define tme_m68k_write8(ic, t, fc, la, _v, f) \
337: tme_m68k_write(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint8_t), f)
338: void tme_m68k_read_memx16 _TME_P((struct tme_m68k *));
339: void tme_m68k_read_mem16 _TME_P((struct tme_m68k *, int));
340: tme_uint16_t tme_m68k_fetch16 _TME_P((struct tme_m68k *, tme_uint32_t));
341: void tme_m68k_pop16 _TME_P((struct tme_m68k *, tme_uint16_t *));
342: #define tme_m68k_read16(ic, t, fc, la, _v, f) \
343: tme_m68k_read(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint16_t), f)
344: void tme_m68k_write_memx16 _TME_P((struct tme_m68k *));
345: void tme_m68k_write_mem16 _TME_P((struct tme_m68k *, int));
346: void tme_m68k_push16 _TME_P((struct tme_m68k *, tme_uint16_t ));
347: #define tme_m68k_write16(ic, t, fc, la, _v, f) \
348: tme_m68k_write(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint16_t), f)
349: void tme_m68k_read_memx32 _TME_P((struct tme_m68k *));
350: void tme_m68k_read_mem32 _TME_P((struct tme_m68k *, int));
351: tme_uint32_t tme_m68k_fetch32 _TME_P((struct tme_m68k *, tme_uint32_t));
352: void tme_m68k_pop32 _TME_P((struct tme_m68k *, tme_uint32_t *));
353: #define tme_m68k_read32(ic, t, fc, la, _v, f) \
354: tme_m68k_read(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint32_t), f)
355: void tme_m68k_write_memx32 _TME_P((struct tme_m68k *));
356: void tme_m68k_write_mem32 _TME_P((struct tme_m68k *, int));
357: void tme_m68k_push32 _TME_P((struct tme_m68k *, tme_uint32_t ));
358: #define tme_m68k_write32(ic, t, fc, la, _v, f) \
359: tme_m68k_write(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint32_t), f)
360: void tme_m68k_read_mem _TME_P((struct tme_m68k *, tme_uint8_t *, unsigned int));
361: 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));
362: void tme_m68k_write_mem _TME_P((struct tme_m68k *, tme_uint8_t *, unsigned int));
363: 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));
364: TME_M68K_INSN_DECL(tme_m68k_abcd);
365: TME_M68K_INSN_DECL(tme_m68k_sbcd);
366: TME_M68K_INSN_DECL(tme_m68k_nbcd);
367: TME_M68K_INSN_DECL(tme_m68k_ori_ccr);
368: TME_M68K_INSN_DECL(tme_m68k_andi_ccr);
369: TME_M68K_INSN_DECL(tme_m68k_eori_ccr);
370: TME_M68K_INSN_DECL(tme_m68k_move_to_ccr);
371: TME_M68K_INSN_DECL(tme_m68k_ori_sr);
372: TME_M68K_INSN_DECL(tme_m68k_andi_sr);
373: TME_M68K_INSN_DECL(tme_m68k_eori_sr);
374: TME_M68K_INSN_DECL(tme_m68k_move_to_sr);
375: TME_M68K_INSN_DECL(tme_m68k_mulu);
376: TME_M68K_INSN_DECL(tme_m68k_divu);
377: TME_M68K_INSN_DECL(tme_m68k_mulul);
378: TME_M68K_INSN_DECL(tme_m68k_divul);
379: TME_M68K_INSN_DECL(tme_m68k_muls);
380: TME_M68K_INSN_DECL(tme_m68k_divs);
381: TME_M68K_INSN_DECL(tme_m68k_mulsl);
382: TME_M68K_INSN_DECL(tme_m68k_divsl);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.