1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
pub const EA_ARI: usize = 4;
pub const EA_ARIWPO: usize = 4;
pub const EA_ARIWPR: usize = 7;
pub const EA_ARIWD: usize = 11;
pub const EA_ARIWI8: usize = 14;
pub const EA_ABSSHORT: usize = 8;
pub const EA_ABSLONG: usize = 12;
pub const EA_PCIWD: usize = 11;
pub const EA_PCIWI8: usize = 14;
pub const EA_IMMEDIATE: usize = 4;
pub const VECTOR_RESET: usize = 43;
pub const
pub const ABCD_REG: usize = 10;
pub const ABCD_MEM: usize = 31;
pub const ADD_REG_BW: usize = 7;
pub const ADD_REG_L: usize = 7;
pub const ADD_REG_L_RDIMM: usize = 7;
pub const ADD_MEM_BW: usize = 11;
pub const ADD_MEM_L: usize = 15;
pub const ADDA_WORD: usize = 7;
pub const ADDA_LONG: usize = 7;
pub const ADDA_LONG_RDIMM: usize = 7;
pub const ADDI_REG_BW: usize = 14;
pub const ADDI_REG_L: usize = 18;
pub const ADDI_MEM_BW: usize = 18;
pub const ADDI_MEM_L: usize = 26;
pub const ADDQ_REG_BW: usize = 7;
pub const ADDQ_REG_L: usize = 7;
pub const ADDQ_MEM_BW: usize = 11;
pub const ADDQ_MEM_L: usize = 15;
pub const ADDX_REG_BW: usize = 7;
pub const ADDX_REG_L: usize = 7;
pub const ADDX_MEM_BW: usize = 28;
pub const ADDX_MEM_L: usize = 40;
pub const AND_REG_BW: usize = 7;
pub const AND_REG_L: usize = 7;
pub const AND_REG_L_RDIMM: usize = 7;
pub const AND_MEM_BW: usize = 11;
pub const AND_MEM_L: usize = 15;
pub const ANDI_REG_BW: usize = 14;
pub const ANDI_REG_L: usize = 18;
pub const ANDI_MEM_BW: usize = 18;
pub const ANDI_MEM_L: usize = 26;
pub const ANDICCR: usize = 14;
pub const ANDISR: usize = 14;
pub const ASM: usize = 14;
pub const ASR_COUNT: usize = 3;
pub const ASR_BW: usize = 13;
pub const ASR_L: usize = 13;
pub const BCC_BRANCH: usize = 13;
pub const BCC_NO_BRANCH_BYTE: usize = 14;
pub const BCC_NO_BRANCH_WORD: usize = 14;
pub const BCHG_DYN_REG: usize = 10;
pub const BCHG_DYN_MEM: usize = 14;
pub const BCHG_STA_REG: usize = 17;
pub const BCHG_STA_MEM: usize = 21;
pub const BCLR_DYN_REG: usize = 10;
pub const BCLR_DYN_MEM: usize = 14;
pub const BCLR_STA_REG: usize = 17;
pub const BCLR_STA_MEM: usize = 21;
pub const BRA_BYTE: usize = 13;
pub const BRA_WORD: usize = 14;
pub const BSET_DYN_REG: usize = 10;
pub const BSET_DYN_MEM: usize = 14;
pub const BSET_STA_REG: usize = 17;
pub const BSET_STA_MEM: usize = 21;
pub const BSR_BYTE: usize = 17;
pub const BSR_WORD: usize = 22;
pub const BTST_DYN_REG: usize = 7;
pub const BTST_DYN_MEM: usize = 7;
pub const BTST_STA_REG: usize = 14;
pub const BTST_STA_MEM: usize = 14;
pub const CHK_NO_TRAP: usize = 19;
pub const CLR_REG_BW: usize = 7;
pub const CLR_REG_L: usize = 7;
pub const CLR_MEM_BW: usize = 7; // Subtract one read cycle from effective address calculation.
pub const CLR_MEM_L: usize = 7; // Subtract two read cycles from effective address calculation.
pub const CMP_BW: usize = 7;
pub const CMP_L: usize = 7;
pub const CMPA: usize = 7;
pub const CMPI_REG_BW: usize = 14;
pub const CMPI_REG_L: usize = 18;
pub const CMPI_MEM_BW: usize = 14;
pub const CMPI_MEM_L: usize = 18;
pub const CMPM_BW: usize = 18;
pub const CMPM_L: usize = 26;
pub const DBCC_TRUE: usize = 14;
pub const DBCC_FALSE_BRANCH: usize = 17;
pub const DBCC_FALSE_NO_BRANCH: usize = 17;
pub const DIVS: usize = 169;
pub const DIVU: usize = 130;
pub const EOR_REG_BW: usize = 7;
pub const EOR_REG_L: usize = 7;
pub const EOR_MEM_BW: usize = 11;
pub const EOR_MEM_L: usize = 15;
pub const EORI_REG_BW: usize = 14;
pub const EORI_REG_L: usize = 18;
pub const EORI_MEM_BW: usize = 18;
pub const EORI_MEM_L: usize = 26;
pub const EORICCR: usize = 14;
pub const EORISR: usize = 14;
pub const EXG: usize = 13;
pub const EXT: usize = 7;
pub const JMP_ARI: usize = 7;
pub const JMP_ARIWD: usize = 14;
pub const JMP_ARIWI8: usize = 17;
pub const JMP_ABSSHORT: usize = 14;
pub const JMP_ABSLONG: usize = 18;
pub const JMP_PCIWD: usize = 14;
pub const JMP_PCIWI8: usize = 17;
pub const JSR_ARI: usize = 18;
pub const JSR_ARIWD: usize = 25;
pub const JSR_ARIWI8: usize = 28;
pub const JSR_ABSSHORT: usize = 25;
pub const JSR_ABSLONG: usize = 29;
pub const JSR_PCIWD: usize = 25;
pub const JSR_PCIWI8: usize = 28;
pub const LEA_ARI: usize = 7;
pub const LEA_ARIWD: usize = 14;
pub const LEA_ARIWI8: usize = 17;
pub const LEA_ABSSHORT: usize = 14;
pub const LEA_ABSLONG: usize = 18;
pub const LEA_PCIWD: usize = 14;
pub const LEA_PCIWI8: usize = 17;
pub const LINK: usize = 25;
pub const LSM: usize = 14;
pub const LSR_COUNT: usize = 3;
pub const LSR_BW: usize = 13;
pub const LSR_L: usize = 13;
pub const MOVE_DST_ARIWPR: usize = 7;
pub const MOVE_OTHER: usize = 7;
pub const MOVEA: usize = 7;
pub const MOVECCR: usize = 10;
pub const MOVEFSR_REG: usize = 7;
pub const MOVEFSR_MEM: usize = 11;
pub const MOVESR: usize = 10;
pub const MOVEUSP: usize = 7;
pub const MOVEM_WORD: usize = 7;
pub const MOVEM_LONG: usize = 11;
pub const MOVEM_MTR: usize = 3;
pub const MOVEM_ARI: usize = 23; // R -> M, do +3 for M -> R.
pub const MOVEM_ARIWPO: usize = 23;
pub const MOVEM_ARIWPR: usize = 23;
pub const MOVEM_ARIWD: usize = 27;
pub const MOVEM_ARIWI8: usize = 30;
pub const MOVEM_ABSSHORT: usize = 27;
pub const MOVEM_ABSLONG: usize = 31;
pub const MOVEM_PCIWD: usize = 27;
pub const MOVEM_PCIWI8: usize = 30;
pub const MOVEP_RTM_WORD: usize = 25;
pub const MOVEP_RTM_LONG: usize = 39;
pub const MOVEP_MTR_WORD: usize = 22;
pub const MOVEP_MTR_LONG: usize = 36;
pub const MOVEQ: usize = 7;
pub const MULS: usize = 76;
pub const MULU: usize = 76;
pub const NBCD_REG: usize = 10;
pub const NBCD_MEM: usize = 14;
pub const NEG_REG_BW: usize = 7;
pub const NEG_REG_L: usize = 7;
pub const NEG_MEM_BW: usize = 11;
pub const NEG_MEM_L: usize = 15;
pub const NEGX_REG_BW: usize = 7;
pub const NEGX_REG_L: usize = 7;
pub const NEGX_MEM_BW: usize = 11;
pub const NEGX_MEM_L: usize = 15;
pub const NOP: usize = 7;
pub const NOT_REG_BW: usize = 7;
pub const NOT_REG_L: usize = 7;
pub const NOT_MEM_BW: usize = 11;
pub const NOT_MEM_L: usize = 15;
pub const OR_REG_BW: usize = 7;
pub const OR_REG_L: usize = 7;
pub const OR_REG_L_RDIMM: usize = 7;
pub const OR_MEM_BW: usize = 11;
pub const OR_MEM_L: usize = 15;
pub const ORI_REG_BW: usize = 14;
pub const ORI_REG_L: usize = 18;
pub const ORI_MEM_BW: usize = 18;
pub const ORI_MEM_L: usize = 26;
pub const ORICCR: usize = 14;
pub const ORISR: usize = 14;
pub const PEA_ARI: usize = 18;
pub const PEA_ARIWD: usize = 25;
pub const PEA_ARIWI8: usize = 28;
pub const PEA_ABSSHORT: usize = 25;
pub const PEA_ABSLONG: usize = 29;
pub const PEA_PCIWD: usize = 25;
pub const PEA_PCIWI8: usize = 28;
pub const RESET: usize = 154;
pub const ROM: usize = 14;
pub const ROR_COUNT: usize = 3;
pub const ROR_BW: usize = 13;
pub const ROR_L: usize = 13;
pub const ROXM: usize = 14;
pub const ROXR_COUNT: usize = 3;
pub const ROXR_BW: usize = 13;
pub const ROXR_L: usize = 13;
pub const RTE: usize = 39;
pub const RTR: usize = 22;
pub const RTS: usize = 15;
pub const SBCD_REG: usize = 10;
pub const SBCD_MEM: usize = 31;
pub const SCC_REG_FALSE: usize = 13;
pub const SCC_REG_TRUE: usize = 13;
pub const SCC_MEM_FALSE: usize = 17;
pub const SCC_MEM_TRUE: usize = 14;
pub const STOP: usize = 13;
pub const SUB_REG_BW: usize = 7;
pub const SUB_REG_L: usize = 7;
pub const SUB_REG_L_RDIMM: usize = 7;
pub const SUB_MEM_BW: usize = 11;
pub const SUB_MEM_L: usize = 15;
pub const SUBA_WORD: usize = 7;
pub const SUBA_LONG: usize = 7;
pub const SUBA_LONG_RDIMM: usize = 7;
pub const SUBI_REG_BW: usize = 14;
pub const SUBI_REG_L: usize = 18;
pub const SUBI_MEM_BW: usize = 18;
pub const SUBI_MEM_L: usize = 26;
pub const SUBQ_DREG_BW: usize = 7;
pub const SUBQ_AREG_BW: usize = 7;
pub const SUBQ_REG_L: usize = 7;
pub const SUBQ_MEM_BW: usize = 11;
pub const SUBQ_MEM_L: usize = 15;
pub const SUBX_REG_BW: usize = 7;
pub const SUBX_REG_L: usize = 7;
pub const SUBX_MEM_BW: usize = 28;
pub const SUBX_MEM_L: usize = 40;
pub const SWAP: usize = 7;
pub const TAS_REG: usize = 10;
pub const TAS_MEM: usize = 11; // Subtract one read cycle from effective address calculation.
pub const TRAPV_NO_TRAP: usize = 10;
pub const TST_REG_BW: usize = 7;
pub const TST_REG_L: usize = 7;
pub const TST_MEM_BW: usize = 7;
pub const TST_MEM_L: usize = 7;
pub const UNLK: usize = 15;