|
|
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)
44: #define tme_m68k_ireg_sr tme_m68k_ireg_uint16(18 << 1)
45: #define tme_m68k_ireg_ccr tme_m68k_ireg_uint8(18 << 2)
46: #define TME_M68K_IREG_SHADOW_SR (19 << 1)
47: #define tme_m68k_ireg_shadow_sr tme_m68k_ireg_uint16(TME_M68K_IREG_SHADOW_SR)
48: #define TME_M68K_IREG_FORMAT_OFFSET ((19 << 1) + 1)
49: #define tme_m68k_ireg_format_offset tme_m68k_ireg_uint16(TME_M68K_IREG_FORMAT_OFFSET)
50: #define TME_M68K_IREG_MEMX32 (20)
51: #define tme_m68k_ireg_memx32 tme_m68k_ireg_uint32(TME_M68K_IREG_MEMX32)
52: #define TME_M68K_IREG_MEMX16 (20 << 1)
53: #define tme_m68k_ireg_memx16 tme_m68k_ireg_uint16(TME_M68K_IREG_MEMX16)
54: #define TME_M68K_IREG_MEMX8 (20 << 2)
55: #define tme_m68k_ireg_memx8 tme_m68k_ireg_uint8(TME_M68K_IREG_MEMX8)
56: #define TME_M68K_IREG_MEMY32 (21)
57: #define tme_m68k_ireg_memy32 tme_m68k_ireg_uint32(TME_M68K_IREG_MEMY32)
58: #define TME_M68K_IREG_MEMY16 (21 << 1)
59: #define tme_m68k_ireg_memy16 tme_m68k_ireg_uint16(TME_M68K_IREG_MEMY16)
60: #define TME_M68K_IREG_MEMY8 (21 << 2)
61: #define tme_m68k_ireg_memy8 tme_m68k_ireg_uint8(TME_M68K_IREG_MEMY8)
62: #define TME_M68K_IREG_MEMZ32 (22)
63: #define tme_m68k_ireg_memz32 tme_m68k_ireg_uint32(TME_M68K_IREG_MEMZ32)
64: #define TME_M68K_IREG_MEMZ16 (22 << 1)
65: #define tme_m68k_ireg_memz16 tme_m68k_ireg_uint16(TME_M68K_IREG_MEMZ16)
66: #define TME_M68K_IREG_MEMZ8 (22 << 2)
67: #define tme_m68k_ireg_memz8 tme_m68k_ireg_uint8(TME_M68K_IREG_MEMZ8)
68: #define TME_M68K_IREG_USP (23)
69: #define tme_m68k_ireg_usp tme_m68k_ireg_uint32(TME_M68K_IREG_USP)
70: #define TME_M68K_IREG_ISP (24)
71: #define tme_m68k_ireg_isp tme_m68k_ireg_uint32(TME_M68K_IREG_ISP)
72: #define TME_M68K_IREG_MSP (25)
73: #define tme_m68k_ireg_msp tme_m68k_ireg_uint32(TME_M68K_IREG_MSP)
74: #define TME_M68K_IREG_SFC (26)
75: #define tme_m68k_ireg_sfc tme_m68k_ireg_uint32(TME_M68K_IREG_SFC)
76: #define TME_M68K_IREG_DFC (27)
77: #define tme_m68k_ireg_dfc tme_m68k_ireg_uint32(TME_M68K_IREG_DFC)
78: #define TME_M68K_IREG_VBR (28)
79: #define tme_m68k_ireg_vbr tme_m68k_ireg_uint32(TME_M68K_IREG_VBR)
80: #define TME_M68K_IREG32_COUNT (29)
81:
82: #endif /* _IC_M68K_MISC_H */
83:
84: #ifdef _TME_M68K_EXECUTE_FAST
85:
86: /* these macros are for the fast executor: */
87:
88: /* on all hosts,
89: this loads a 16-bit unsigned value for the fast instruction executor: */
90: #undef _TME_M68K_EXECUTE_FETCH_U16
91: #define _TME_M68K_EXECUTE_FETCH_U16(v) \
92: if ((emulator_load + (sizeof(tme_uint16_t) - 1)) > emulator_load_last) \
93: goto _tme_m68k_fast_fetch_failed; \
94: tme_memory_aligned_rdlock(tlb->tme_m68k_tlb_bus_rwlock); \
95: (v) = (tme_uint16_t) tme_betoh_u16(*((tme_uint16_t *) emulator_load)); \
96: tme_memory_aligned_unlock(tlb->tme_m68k_tlb_bus_rwlock); \
97: insn_fetch_sizes <<= 1; \
98: emulator_load += sizeof(tme_uint16_t)
99:
100: /* on all hosts,
101: this loads a 16-bit signed value for the fast instruction executor: */
102: #undef _TME_M68K_EXECUTE_FETCH_S16
103: #define _TME_M68K_EXECUTE_FETCH_S16(v) \
104: if ((emulator_load + (sizeof(tme_uint16_t) - 1)) > emulator_load_last) \
105: goto _tme_m68k_fast_fetch_failed; \
106: tme_memory_aligned_rdlock(tlb->tme_m68k_tlb_bus_rwlock); \
107: (v) = (tme_int16_t) tme_betoh_u16(*((tme_uint16_t *) emulator_load)); \
108: tme_memory_aligned_unlock(tlb->tme_m68k_tlb_bus_rwlock); \
109: insn_fetch_sizes <<= 1; \
110: emulator_load += sizeof(tme_int16_t)
111:
112: /* on a host with any alignment,
113: this loads a 32-bit unsigned value for the fast instruction executor: */
114: #if ALIGNOF_INT32_T <= ALIGNOF_INT16_T
115: #undef _TME_M68K_EXECUTE_FETCH_U32
116: #define _TME_M68K_EXECUTE_FETCH_U32(v) \
117: if ((emulator_load + (sizeof(tme_uint32_t) - 1)) > emulator_load_last) \
118: goto _tme_m68k_fast_fetch_failed; \
119: if (((unsigned long) emulator_load) & (sizeof(tme_uint32_t) - 1)) { \
120: tme_memory_unaligned_rdlock(tlb->tme_m68k_tlb_bus_rwlock); \
121: (v) = (tme_uint32_t) tme_betoh_u32(*((tme_uint32_t *) emulator_load)); \
122: tme_memory_unaligned_unlock(tlb->tme_m68k_tlb_bus_rwlock); \
123: } \
124: else { \
125: tme_memory_aligned_rdlock(tlb->tme_m68k_tlb_bus_rwlock); \
126: (v) = (tme_uint32_t) tme_betoh_u32(*((tme_uint32_t *) emulator_load)); \
127: tme_memory_aligned_unlock(tlb->tme_m68k_tlb_bus_rwlock); \
128: } \
129: insn_fetch_sizes = (insn_fetch_sizes << 1) | 1; \
130: emulator_load += sizeof(tme_uint32_t)
131: #endif /* ALIGNOF_INT32_T <= ALIGNOF_INT16_T */
132:
133: /* on a host with any alignment,
134: this loads a 32-bit signed value for the fast instruction executor: */
135: #if ALIGNOF_INT32_T <= ALIGNOF_INT16_T
136: #undef _TME_M68K_EXECUTE_FETCH_S32
137: #define _TME_M68K_EXECUTE_FETCH_S32(v) \
138: if ((emulator_load + (sizeof(tme_uint32_t) - 1)) > emulator_load_last) \
139: goto _tme_m68k_fast_fetch_failed; \
140: if (((unsigned long) emulator_load) & (sizeof(tme_uint32_t) - 1)) { \
141: tme_memory_unaligned_rdlock(tlb->tme_m68k_tlb_bus_rwlock); \
142: (v) = (tme_int32_t) tme_betoh_u32(*((tme_uint32_t *) emulator_load)); \
143: tme_memory_unaligned_unlock(tlb->tme_m68k_tlb_bus_rwlock); \
144: } \
145: else { \
146: tme_memory_aligned_rdlock(tlb->tme_m68k_tlb_bus_rwlock); \
147: (v) = (tme_int32_t) tme_betoh_u32(*((tme_uint32_t *) emulator_load)); \
148: tme_memory_aligned_unlock(tlb->tme_m68k_tlb_bus_rwlock); \
149: } \
150: insn_fetch_sizes = (insn_fetch_sizes << 1) | 1; \
151: emulator_load += sizeof(tme_int32_t)
152: #endif /* ALIGNOF_INT32_T <= ALIGNOF_INT16_T */
153:
154: /* on a little-endian host with strict alignment,
155: this loads a 32-bit unsigned value for the fast instruction executor: */
156: #if (ALIGNOF_INT32_T > ALIGNOF_INT16_T) && !defined(WORDS_BIGENDIAN)
157: #undef _TME_M68K_EXECUTE_FETCH_U32
158: #define _TME_M68K_EXECUTE_FETCH_U32(v) \
159: if ((emulator_load + (sizeof(tme_uint32_t) - 1)) > emulator_load_last) \
160: goto _tme_m68k_fast_fetch_failed; \
161: if (TME_SEQUENCE_ACCESS_NOT_COSTLIER || ((unsigned long) emulator_load) & (sizeof(tme_uint32_t) - 1)) { \
162: tme_memory_sequence_rdlock(tlb->tme_m68k_bus_tlb_rwlock); \
163: (v) = (tme_uint32_t) \
164: tme_betoh_u32((((tme_uint32_t) ((tme_uint16_t *) emulator_load)[1]) << 16) | \
165: ((tme_uint32_t) ((tme_uint16_t *) emulator_load)[0])); \
166: tme_memory_sequence_unlock(tlb->tme_m68k_bus_tlb_rwlock); \
167: } else { \
168: tme_memory_aligned_rdlock(tlb->tme_m68k_tlb_bus_rwlock); \
169: (v) = (tme_uint32_t) tme_betoh_u32(*((tme_uint32_t *) emulator_load)); \
170: tme_memory_aligned_unlock(tlb->tme_m68k_tlb_bus_rwlock); \
171: } \
172: insn_fetch_sizes = (insn_fetch_sizes << 1) | 1; \
173: emulator_load += sizeof(tme_uint32_t)
174: #endif /* (ALIGNOF_INT32_T > ALIGNOF_INT16_T) && !defined(WORDS_BIGENDIAN) */
175:
176: /* on a little-endian host with strict alignment,
177: this loads a 32-bit signed value for the fast instruction executor: */
178: #if (ALIGNOF_INT32_T > ALIGNOF_INT16_T) && !defined(WORDS_BIGENDIAN)
179: #undef _TME_M68K_EXECUTE_FETCH_S32
180: #define _TME_M68K_EXECUTE_FETCH_S32(v) \
181: if ((emulator_load + (sizeof(tme_uint32_t) - 1)) > emulator_load_last) \
182: goto _tme_m68k_fast_fetch_failed; \
183: if (TME_SEQUENCE_ACCESS_NOT_COSTLIER || ((unsigned long) emulator_load) & (sizeof(tme_uint32_t) - 1)) { \
184: tme_memory_sequence_rdlock(tlb->tme_m68k_bus_tlb_rwlock); \
185: (v) = (tme_int32_t) \
186: tme_betoh_u32((((tme_uint32_t) ((tme_uint16_t *) emulator_load)[1]) << 16) | \
187: ((tme_uint32_t) ((tme_uint16_t *) emulator_load)[0])); \
188: tme_memory_sequence_unlock(tlb->tme_m68k_bus_tlb_rwlock); \
189: } else { \
190: tme_memory_aligned_rdlock(tlb->tme_m68k_tlb_bus_rwlock); \
191: (v) = (tme_int32_t) tme_betoh_u32(*((tme_uint32_t *) emulator_load)); \
192: tme_memory_aligned_unlock(tlb->tme_m68k_tlb_bus_rwlock); \
193: } \
194: insn_fetch_sizes = (insn_fetch_sizes << 1) | 1; \
195: emulator_load += sizeof(tme_int32_t)
196: #endif /* (ALIGNOF_INT32_T > ALIGNOF_INT16_T) && !defined(WORDS_BIGENDIAN) */
197:
198: /* on a big-endian host with strict alignment,
199: this loads a 32-bit unsigned value for the fast instruction executor: */
200: #if (ALIGNOF_INT32_T > ALIGNOF_INT16_T) && defined(WORDS_BIGENDIAN)
201: #undef _TME_M68K_EXECUTE_FETCH_U32
202: #define _TME_M68K_EXECUTE_FETCH_U32(v) \
203: if ((emulator_load + (sizeof(tme_uint32_t) - 1)) > emulator_load_last) \
204: goto _tme_m68k_fast_fetch_failed; \
205: if (TME_SEQUENCE_ACCESS_NOT_COSTLIER || ((unsigned long) emulator_load) & (sizeof(tme_uint32_t) - 1)) { \
206: tme_memory_sequence_rdlock(tlb->tme_m68k_bus_tlb_rwlock); \
207: (v) = (tme_uint32_t) \
208: ((((tme_uint32_t) ((tme_uint16_t *) emulator_load)[0]) << 16) | \
209: ((tme_uint32_t) ((tme_uint16_t *) emulator_load)[1])); \
210: tme_memory_sequence_unlock(tlb->tme_m68k_bus_tlb_rwlock); \
211: } else { \
212: tme_memory_aligned_rdlock(tlb->tme_m68k_tlb_bus_rwlock); \
213: (v) = (tme_uint32_t) tme_betoh_u32(*((tme_uint32_t *) emulator_load)); \
214: tme_memory_aligned_unlock(tlb->tme_m68k_tlb_bus_rwlock); \
215: } \
216: insn_fetch_sizes = (insn_fetch_sizes << 1) | 1; \
217: emulator_load += sizeof(tme_uint32_t)
218: #endif /* (ALIGNOF_INT32_T > ALIGNOF_INT16_T) && defined(WORDS_BIGENDIAN) */
219:
220: /* on a big-endian host with strict alignment,
221: this loads a 32-bit signed value for the fast instruction executor: */
222: #if (ALIGNOF_INT32_T > ALIGNOF_INT16_T) && defined(WORDS_BIGENDIAN)
223: #undef _TME_M68K_EXECUTE_FETCH_S32
224: #define _TME_M68K_EXECUTE_FETCH_S32(v) \
225: if ((emulator_load + (sizeof(tme_uint32_t) - 1)) > emulator_load_last) \
226: goto _tme_m68k_fast_fetch_failed; \
227: if (TME_SEQUENCE_ACCESS_NOT_COSTLIER || ((unsigned long) emulator_load) & (sizeof(tme_uint32_t) - 1)) { \
228: tme_memory_sequence_rdlock(tlb->tme_m68k_bus_tlb_rwlock); \
229: (v) = (tme_int32_t) \
230: ((((tme_uint32_t) ((tme_uint16_t *) emulator_load)[0]) << 16) | \
231: ((tme_uint32_t) ((tme_uint16_t *) emulator_load)[1])); \
232: tme_memory_sequence_unlock(tlb->tme_m68k_bus_tlb_rwlock); \
233: } else { \
234: tme_memory_aligned_rdlock(tlb->tme_m68k_tlb_bus_rwlock); \
235: (v) = (tme_int32_t) tme_betoh_u32(*((tme_uint32_t *) emulator_load)); \
236: tme_memory_aligned_unlock(tlb->tme_m68k_tlb_bus_rwlock); \
237: } \
238: insn_fetch_sizes = (insn_fetch_sizes << 1) | 1; \
239: emulator_load += sizeof(tme_int32_t)
240: #endif /* (ALIGNOF_INT32_T > ALIGNOF_INT16_T) && defined(WORDS_BIGENDIAN) */
241:
242: #endif /* _TME_M68K_EXECUTE_FAST */
243:
244: #ifndef _TME_M68K_EXECUTE_FAST
245:
246: /* these macros are for the slow executor: */
247:
248: /* on all hosts, this fetches a 16-bit unsigned value for the slow executor: */
249: #undef _TME_M68K_EXECUTE_FETCH_U16
250: #define _TME_M68K_EXECUTE_FETCH_U16(v) \
251: (v) = (tme_uint16_t) tme_m68k_fetch16(ic, linear_pc); \
252: insn_fetch_sizes <<= 1; \
253: linear_pc += sizeof(tme_uint16_t)
254:
255: /* on all hosts, this fetches a 16-bit signed value for the slow executor: */
256: #undef _TME_M68K_EXECUTE_FETCH_S16
257: #define _TME_M68K_EXECUTE_FETCH_S16(v) \
258: (v) = (tme_int16_t) tme_m68k_fetch16(ic, linear_pc); \
259: insn_fetch_sizes <<= 1; \
260: linear_pc += sizeof(tme_int16_t)
261:
262: /* on all hosts, this fetches a 32-bit unsigned value for the slow executor: */
263: #undef _TME_M68K_EXECUTE_FETCH_U32
264: #define _TME_M68K_EXECUTE_FETCH_U32(v) \
265: (v) = (tme_uint32_t) tme_m68k_fetch32(ic, linear_pc); \
266: insn_fetch_sizes = (insn_fetch_sizes << 1) | 1; \
267: linear_pc += sizeof(tme_uint32_t)
268:
269: /* on all hosts, this fetches a 32-bit signed value for the slow executor: */
270: #undef _TME_M68K_EXECUTE_FETCH_S32
271: #define _TME_M68K_EXECUTE_FETCH_S32(v) \
272: (v) = (tme_int32_t) tme_m68k_fetch32(ic, linear_pc); \
273: insn_fetch_sizes = (insn_fetch_sizes << 1) | 1; \
274: linear_pc += sizeof(tme_int32_t)
275:
276: #endif /* !_TME_M68K_EXECUTE_FAST */
277: /* automatically generated by m68k-insns-auto.sh, do not edit! */
1.1.1.2 ! root 278: _TME_RCSID("$Id: m68k-insns-auto.sh,v 1.21 2003/08/05 03:33:07 fredette Exp $");
1.1 root 279:
280: TME_M68K_INSN_DECL(tme_m68k_add8);
281: TME_M68K_INSN_DECL(tme_m68k_sub8);
282: TME_M68K_INSN_DECL(tme_m68k_cmp8);
283: TME_M68K_INSN_DECL(tme_m68k_neg8);
284: TME_M68K_INSN_DECL(tme_m68k_or8);
285: TME_M68K_INSN_DECL(tme_m68k_and8);
286: TME_M68K_INSN_DECL(tme_m68k_eor8);
287: TME_M68K_INSN_DECL(tme_m68k_not8);
288: TME_M68K_INSN_DECL(tme_m68k_tst8);
289: TME_M68K_INSN_DECL(tme_m68k_move8);
290: TME_M68K_INSN_DECL(tme_m68k_clr8);
291: TME_M68K_INSN_DECL(tme_m68k_negx8);
292: TME_M68K_INSN_DECL(tme_m68k_addx8);
293: TME_M68K_INSN_DECL(tme_m68k_subx8);
294: TME_M68K_INSN_DECL(tme_m68k_cmpm8);
295: TME_M68K_INSN_DECL(tme_m68k_btst8);
296: TME_M68K_INSN_DECL(tme_m68k_bchg8);
297: TME_M68K_INSN_DECL(tme_m68k_bclr8);
298: TME_M68K_INSN_DECL(tme_m68k_bset8);
299: TME_M68K_INSN_DECL(tme_m68k_asl8);
300: TME_M68K_INSN_DECL(tme_m68k_asr8);
301: TME_M68K_INSN_DECL(tme_m68k_lsl8);
302: TME_M68K_INSN_DECL(tme_m68k_lsr8);
303: TME_M68K_INSN_DECL(tme_m68k_rol8);
304: TME_M68K_INSN_DECL(tme_m68k_ror8);
305: TME_M68K_INSN_DECL(tme_m68k_roxl8);
306: TME_M68K_INSN_DECL(tme_m68k_roxr8);
307: TME_M68K_INSN_DECL(tme_m68k_cas8);
308: TME_M68K_INSN_DECL(tme_m68k_moves8);
309: TME_M68K_INSN_DECL(tme_m68k_add16);
310: TME_M68K_INSN_DECL(tme_m68k_sub16);
311: TME_M68K_INSN_DECL(tme_m68k_cmp16);
312: TME_M68K_INSN_DECL(tme_m68k_neg16);
313: TME_M68K_INSN_DECL(tme_m68k_or16);
314: TME_M68K_INSN_DECL(tme_m68k_and16);
315: TME_M68K_INSN_DECL(tme_m68k_eor16);
316: TME_M68K_INSN_DECL(tme_m68k_not16);
317: TME_M68K_INSN_DECL(tme_m68k_tst16);
318: TME_M68K_INSN_DECL(tme_m68k_move16);
319: TME_M68K_INSN_DECL(tme_m68k_clr16);
320: TME_M68K_INSN_DECL(tme_m68k_cmpa16);
321: TME_M68K_INSN_DECL(tme_m68k_negx16);
322: TME_M68K_INSN_DECL(tme_m68k_addx16);
323: TME_M68K_INSN_DECL(tme_m68k_subx16);
324: TME_M68K_INSN_DECL(tme_m68k_cmpm16);
325: TME_M68K_INSN_DECL(tme_m68k_suba16);
326: TME_M68K_INSN_DECL(tme_m68k_adda16);
327: TME_M68K_INSN_DECL(tme_m68k_movea16);
328: TME_M68K_INSN_DECL(tme_m68k_asl16);
329: TME_M68K_INSN_DECL(tme_m68k_asr16);
330: TME_M68K_INSN_DECL(tme_m68k_lsl16);
331: TME_M68K_INSN_DECL(tme_m68k_lsr16);
332: TME_M68K_INSN_DECL(tme_m68k_rol16);
333: TME_M68K_INSN_DECL(tme_m68k_ror16);
334: TME_M68K_INSN_DECL(tme_m68k_roxl16);
335: TME_M68K_INSN_DECL(tme_m68k_roxr16);
336: TME_M68K_INSN_DECL(tme_m68k_movep_rm16);
337: TME_M68K_INSN_DECL(tme_m68k_movem_rm16);
338: TME_M68K_INSN_DECL(tme_m68k_movep_mr16);
339: TME_M68K_INSN_DECL(tme_m68k_movem_mr16);
340: TME_M68K_INSN_DECL(tme_m68k_chk16);
341: TME_M68K_INSN_DECL(tme_m68k_cas16);
342: TME_M68K_INSN_DECL(tme_m68k_cas2_16);
343: TME_M68K_INSN_DECL(tme_m68k_moves16);
344: TME_M68K_INSN_DECL(tme_m68k_add32);
345: TME_M68K_INSN_DECL(tme_m68k_sub32);
346: TME_M68K_INSN_DECL(tme_m68k_cmp32);
347: TME_M68K_INSN_DECL(tme_m68k_neg32);
348: TME_M68K_INSN_DECL(tme_m68k_or32);
349: TME_M68K_INSN_DECL(tme_m68k_and32);
350: TME_M68K_INSN_DECL(tme_m68k_eor32);
351: TME_M68K_INSN_DECL(tme_m68k_not32);
352: TME_M68K_INSN_DECL(tme_m68k_tst32);
353: TME_M68K_INSN_DECL(tme_m68k_move32);
354: TME_M68K_INSN_DECL(tme_m68k_moveq32);
355: TME_M68K_INSN_DECL(tme_m68k_clr32);
356: TME_M68K_INSN_DECL(tme_m68k_negx32);
357: TME_M68K_INSN_DECL(tme_m68k_addx32);
358: TME_M68K_INSN_DECL(tme_m68k_subx32);
359: TME_M68K_INSN_DECL(tme_m68k_cmpm32);
360: TME_M68K_INSN_DECL(tme_m68k_suba32);
361: TME_M68K_INSN_DECL(tme_m68k_adda32);
362: TME_M68K_INSN_DECL(tme_m68k_movea32);
363: TME_M68K_INSN_DECL(tme_m68k_btst32);
364: TME_M68K_INSN_DECL(tme_m68k_bchg32);
365: TME_M68K_INSN_DECL(tme_m68k_bclr32);
366: TME_M68K_INSN_DECL(tme_m68k_bset32);
367: TME_M68K_INSN_DECL(tme_m68k_asl32);
368: TME_M68K_INSN_DECL(tme_m68k_asr32);
369: TME_M68K_INSN_DECL(tme_m68k_lsl32);
370: TME_M68K_INSN_DECL(tme_m68k_lsr32);
371: TME_M68K_INSN_DECL(tme_m68k_rol32);
372: TME_M68K_INSN_DECL(tme_m68k_ror32);
373: TME_M68K_INSN_DECL(tme_m68k_roxl32);
374: TME_M68K_INSN_DECL(tme_m68k_roxr32);
375: TME_M68K_INSN_DECL(tme_m68k_movep_rm32);
376: TME_M68K_INSN_DECL(tme_m68k_movem_rm32);
377: TME_M68K_INSN_DECL(tme_m68k_movep_mr32);
378: TME_M68K_INSN_DECL(tme_m68k_movem_mr32);
379: TME_M68K_INSN_DECL(tme_m68k_chk32);
380: TME_M68K_INSN_DECL(tme_m68k_cas32);
381: TME_M68K_INSN_DECL(tme_m68k_cas2_32);
382: TME_M68K_INSN_DECL(tme_m68k_moves32);
383: void tme_m68k_read_memx8 _TME_P((struct tme_m68k *));
384: void tme_m68k_read_mem8 _TME_P((struct tme_m68k *, int));
385: #define tme_m68k_read8(ic, t, fc, la, _v, f) \
386: tme_m68k_read(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint8_t), f)
387: void tme_m68k_write_memx8 _TME_P((struct tme_m68k *));
388: void tme_m68k_write_mem8 _TME_P((struct tme_m68k *, int));
389: #define tme_m68k_write8(ic, t, fc, la, _v, f) \
390: tme_m68k_write(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint8_t), f)
391: void tme_m68k_read_memx16 _TME_P((struct tme_m68k *));
392: void tme_m68k_read_mem16 _TME_P((struct tme_m68k *, int));
393: tme_uint16_t tme_m68k_fetch16 _TME_P((struct tme_m68k *, tme_uint32_t));
394: void tme_m68k_pop16 _TME_P((struct tme_m68k *, tme_uint16_t *));
395: #define tme_m68k_read16(ic, t, fc, la, _v, f) \
396: tme_m68k_read(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint16_t), f)
397: void tme_m68k_write_memx16 _TME_P((struct tme_m68k *));
398: void tme_m68k_write_mem16 _TME_P((struct tme_m68k *, int));
399: void tme_m68k_push16 _TME_P((struct tme_m68k *, tme_uint16_t ));
400: #define tme_m68k_write16(ic, t, fc, la, _v, f) \
401: tme_m68k_write(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint16_t), f)
402: void tme_m68k_read_memx32 _TME_P((struct tme_m68k *));
403: void tme_m68k_read_mem32 _TME_P((struct tme_m68k *, int));
404: tme_uint32_t tme_m68k_fetch32 _TME_P((struct tme_m68k *, tme_uint32_t));
405: void tme_m68k_pop32 _TME_P((struct tme_m68k *, tme_uint32_t *));
406: #define tme_m68k_read32(ic, t, fc, la, _v, f) \
407: tme_m68k_read(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint32_t), f)
408: void tme_m68k_write_memx32 _TME_P((struct tme_m68k *));
409: void tme_m68k_write_mem32 _TME_P((struct tme_m68k *, int));
410: void tme_m68k_push32 _TME_P((struct tme_m68k *, tme_uint32_t ));
411: #define tme_m68k_write32(ic, t, fc, la, _v, f) \
412: tme_m68k_write(ic, t, fc, la, (tme_uint8_t *) (_v), sizeof(tme_uint32_t), f)
413: void tme_m68k_read_mem _TME_P((struct tme_m68k *, tme_uint8_t *, unsigned int));
414: 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));
415: void tme_m68k_write_mem _TME_P((struct tme_m68k *, tme_uint8_t *, unsigned int));
416: 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));
417: TME_M68K_INSN_DECL(tme_m68k_abcd);
418: TME_M68K_INSN_DECL(tme_m68k_sbcd);
419: TME_M68K_INSN_DECL(tme_m68k_nbcd);
420: TME_M68K_INSN_DECL(tme_m68k_ori_ccr);
421: TME_M68K_INSN_DECL(tme_m68k_andi_ccr);
422: TME_M68K_INSN_DECL(tme_m68k_eori_ccr);
423: TME_M68K_INSN_DECL(tme_m68k_move_to_ccr);
424: TME_M68K_INSN_DECL(tme_m68k_ori_sr);
425: TME_M68K_INSN_DECL(tme_m68k_andi_sr);
426: TME_M68K_INSN_DECL(tme_m68k_eori_sr);
427: TME_M68K_INSN_DECL(tme_m68k_move_to_sr);
428: TME_M68K_INSN_DECL(tme_m68k_mulu);
429: TME_M68K_INSN_DECL(tme_m68k_divu);
430: TME_M68K_INSN_DECL(tme_m68k_mulul);
431: TME_M68K_INSN_DECL(tme_m68k_divul);
432: TME_M68K_INSN_DECL(tme_m68k_muls);
433: TME_M68K_INSN_DECL(tme_m68k_divs);
434: TME_M68K_INSN_DECL(tme_m68k_mulsl);
435: 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.