1 module capstone.m68k;
2
3 extern (C):
4
5 /* Capstone Disassembly Engine */
6 /* By Daniel Collin <daniel@collin.com>, 2015-2016 */
7
8 enum M68K_OPERAND_COUNT = 4;
9
10 /// M68K registers and special registers
11 enum m68k_reg
12 {
13 M68K_REG_INVALID = 0,
14
15 M68K_REG_D0 = 1,
16 M68K_REG_D1 = 2,
17 M68K_REG_D2 = 3,
18 M68K_REG_D3 = 4,
19 M68K_REG_D4 = 5,
20 M68K_REG_D5 = 6,
21 M68K_REG_D6 = 7,
22 M68K_REG_D7 = 8,
23
24 M68K_REG_A0 = 9,
25 M68K_REG_A1 = 10,
26 M68K_REG_A2 = 11,
27 M68K_REG_A3 = 12,
28 M68K_REG_A4 = 13,
29 M68K_REG_A5 = 14,
30 M68K_REG_A6 = 15,
31 M68K_REG_A7 = 16,
32
33 M68K_REG_FP0 = 17,
34 M68K_REG_FP1 = 18,
35 M68K_REG_FP2 = 19,
36 M68K_REG_FP3 = 20,
37 M68K_REG_FP4 = 21,
38 M68K_REG_FP5 = 22,
39 M68K_REG_FP6 = 23,
40 M68K_REG_FP7 = 24,
41
42 M68K_REG_PC = 25,
43
44 M68K_REG_SR = 26,
45 M68K_REG_CCR = 27,
46 M68K_REG_SFC = 28,
47 M68K_REG_DFC = 29,
48 M68K_REG_USP = 30,
49 M68K_REG_VBR = 31,
50 M68K_REG_CACR = 32,
51 M68K_REG_CAAR = 33,
52 M68K_REG_MSP = 34,
53 M68K_REG_ISP = 35,
54 M68K_REG_TC = 36,
55 M68K_REG_ITT0 = 37,
56 M68K_REG_ITT1 = 38,
57 M68K_REG_DTT0 = 39,
58 M68K_REG_DTT1 = 40,
59 M68K_REG_MMUSR = 41,
60 M68K_REG_URP = 42,
61 M68K_REG_SRP = 43,
62
63 M68K_REG_FPCR = 44,
64 M68K_REG_FPSR = 45,
65 M68K_REG_FPIAR = 46,
66
67 M68K_REG_ENDING = 47 // <-- mark the end of the list of registers
68 }
69
70 /// M68K Addressing Modes
71 enum m68k_address_mode
72 {
73 M68K_AM_NONE = 0, ///< No address mode.
74
75 M68K_AM_REG_DIRECT_DATA = 1, ///< Register Direct - Data
76 M68K_AM_REG_DIRECT_ADDR = 2, ///< Register Direct - Address
77
78 M68K_AM_REGI_ADDR = 3, ///< Register Indirect - Address
79 M68K_AM_REGI_ADDR_POST_INC = 4, ///< Register Indirect - Address with Postincrement
80 M68K_AM_REGI_ADDR_PRE_DEC = 5, ///< Register Indirect - Address with Predecrement
81 M68K_AM_REGI_ADDR_DISP = 6, ///< Register Indirect - Address with Displacement
82
83 M68K_AM_AREGI_INDEX_8_BIT_DISP = 7, ///< Address Register Indirect With Index- 8-bit displacement
84 M68K_AM_AREGI_INDEX_BASE_DISP = 8, ///< Address Register Indirect With Index- Base displacement
85
86 M68K_AM_MEMI_POST_INDEX = 9, ///< Memory indirect - Postindex
87 M68K_AM_MEMI_PRE_INDEX = 10, ///< Memory indirect - Preindex
88
89 M68K_AM_PCI_DISP = 11, ///< Program Counter Indirect - with Displacement
90
91 M68K_AM_PCI_INDEX_8_BIT_DISP = 12, ///< Program Counter Indirect with Index - with 8-Bit Displacement
92 M68K_AM_PCI_INDEX_BASE_DISP = 13, ///< Program Counter Indirect with Index - with Base Displacement
93
94 M68K_AM_PC_MEMI_POST_INDEX = 14, ///< Program Counter Memory Indirect - Postindexed
95 M68K_AM_PC_MEMI_PRE_INDEX = 15, ///< Program Counter Memory Indirect - Preindexed
96
97 M68K_AM_ABSOLUTE_DATA_SHORT = 16, ///< Absolute Data Addressing - Short
98 M68K_AM_ABSOLUTE_DATA_LONG = 17, ///< Absolute Data Addressing - Long
99 M68K_AM_IMMEDIATE = 18, ///< Immediate value
100
101 M68K_AM_BRANCH_DISPLACEMENT = 19 ///< Address as displacement from (PC+2) used by branches
102 }
103
104 /// Operand type for instruction's operands
105 enum m68k_op_type
106 {
107 M68K_OP_INVALID = 0, ///< = CS_OP_INVALID (Uninitialized).
108 M68K_OP_REG = 1, ///< = CS_OP_REG (Register operand).
109 M68K_OP_IMM = 2, ///< = CS_OP_IMM (Immediate operand).
110 M68K_OP_MEM = 3, ///< = CS_OP_MEM (Memory operand).
111 M68K_OP_FP_SINGLE = 4, ///< single precision Floating-Point operand
112 M68K_OP_FP_DOUBLE = 5, ///< double precision Floating-Point operand
113 M68K_OP_REG_BITS = 6, ///< Register bits move
114 M68K_OP_REG_PAIR = 7, ///< Register pair in the same op (upper 4 bits for first reg, lower for second)
115 M68K_OP_BR_DISP = 8 ///< Branch displacement
116 }
117
118 /// Instruction's operand referring to memory
119 /// This is associated with M68K_OP_MEM operand type above
120 struct m68k_op_mem
121 {
122 m68k_reg base_reg; ///< base register (or M68K_REG_INVALID if irrelevant)
123 m68k_reg index_reg; ///< index register (or M68K_REG_INVALID if irrelevant)
124 m68k_reg in_base_reg; ///< indirect base register (or M68K_REG_INVALID if irrelevant)
125 uint in_disp; ///< indirect displacement
126 uint out_disp; ///< other displacement
127 short disp; ///< displacement value
128 ubyte scale; ///< scale for index register
129 ubyte bitfield; ///< set to true if the two values below should be used
130 ubyte width; ///< used for bf* instructions
131 ubyte offset; ///< used for bf* instructions
132 ubyte index_size; ///< 0 = w, 1 = l
133 }
134
135 /// Operand type for instruction's operands
136 enum m68k_op_br_disp_size
137 {
138 M68K_OP_BR_DISP_SIZE_INVALID = 0, ///< = CS_OP_INVALID (Uninitialized).
139 M68K_OP_BR_DISP_SIZE_BYTE = 1, ///< signed 8-bit displacement
140 M68K_OP_BR_DISP_SIZE_WORD = 2, ///< signed 16-bit displacement
141 M68K_OP_BR_DISP_SIZE_LONG = 4 ///< signed 32-bit displacement
142 }
143
144 struct m68k_op_br_disp
145 {
146 int disp; ///< displacement value
147 ubyte disp_size; ///< Size from m68k_op_br_disp_size type above
148 }
149
150 /// Instruction operand
151 struct cs_m68k_op
152 {
153 union
154 {
155 ulong imm; ///< immediate value for IMM operand
156 double dimm; ///< double imm
157 float simm; ///< float imm
158 m68k_reg reg; ///< register value for REG operand
159 ///< register pair in one operand
160 struct _Anonymous_0
161 {
162 m68k_reg reg_0;
163 m68k_reg reg_1;
164 }
165
166 _Anonymous_0 reg_pair;
167 }
168
169 m68k_op_mem mem; ///< data when operand is targeting memory
170 m68k_op_br_disp br_disp; ///< data when operand is a branch displacement
171 uint register_bits; ///< register bits for movem etc. (always in d0-d7, a0-a7, fp0 - fp7 order)
172 m68k_op_type type;
173 m68k_address_mode address_mode; ///< M68K addressing mode for this op
174 }
175
176 /// Operation size of the CPU instructions
177 enum m68k_cpu_size
178 {
179 M68K_CPU_SIZE_NONE = 0, ///< unsized or unspecified
180 M68K_CPU_SIZE_BYTE = 1, ///< 1 byte in size
181 M68K_CPU_SIZE_WORD = 2, ///< 2 bytes in size
182 M68K_CPU_SIZE_LONG = 4 ///< 4 bytes in size
183 }
184
185 /// Operation size of the FPU instructions (Notice that FPU instruction can also use CPU sizes if needed)
186 enum m68k_fpu_size
187 {
188 M68K_FPU_SIZE_NONE = 0, ///< unsized like fsave/frestore
189 M68K_FPU_SIZE_SINGLE = 4, ///< 4 byte in size (single float)
190 M68K_FPU_SIZE_DOUBLE = 8, ///< 8 byte in size (double)
191 M68K_FPU_SIZE_EXTENDED = 12 ///< 12 byte in size (extended real format)
192 }
193
194 /// Type of size that is being used for the current instruction
195 enum m68k_size_type
196 {
197 M68K_SIZE_TYPE_INVALID = 0,
198
199 M68K_SIZE_TYPE_CPU = 1,
200 M68K_SIZE_TYPE_FPU = 2
201 }
202
203 /// Operation size of the current instruction (NOT the actually size of instruction)
204 struct m68k_op_size
205 {
206 m68k_size_type type;
207
208 union
209 {
210 m68k_cpu_size cpu_size;
211 m68k_fpu_size fpu_size;
212 }
213 }
214
215 /// The M68K instruction and it's operands
216 struct cs_m68k
217 {
218 // Number of operands of this instruction or 0 when instruction has no operand.
219 cs_m68k_op[M68K_OPERAND_COUNT] operands; ///< operands for this instruction.
220 m68k_op_size op_size; ///< size of data operand works on in bytes (.b, .w, .l, etc)
221 ubyte op_count; ///< number of operands for the instruction
222 }
223
224 /// M68K instruction
225 enum m68k_insn
226 {
227 M68K_INS_INVALID = 0,
228
229 M68K_INS_ABCD = 1,
230 M68K_INS_ADD = 2,
231 M68K_INS_ADDA = 3,
232 M68K_INS_ADDI = 4,
233 M68K_INS_ADDQ = 5,
234 M68K_INS_ADDX = 6,
235 M68K_INS_AND = 7,
236 M68K_INS_ANDI = 8,
237 M68K_INS_ASL = 9,
238 M68K_INS_ASR = 10,
239 M68K_INS_BHS = 11,
240 M68K_INS_BLO = 12,
241 M68K_INS_BHI = 13,
242 M68K_INS_BLS = 14,
243 M68K_INS_BCC = 15,
244 M68K_INS_BCS = 16,
245 M68K_INS_BNE = 17,
246 M68K_INS_BEQ = 18,
247 M68K_INS_BVC = 19,
248 M68K_INS_BVS = 20,
249 M68K_INS_BPL = 21,
250 M68K_INS_BMI = 22,
251 M68K_INS_BGE = 23,
252 M68K_INS_BLT = 24,
253 M68K_INS_BGT = 25,
254 M68K_INS_BLE = 26,
255 M68K_INS_BRA = 27,
256 M68K_INS_BSR = 28,
257 M68K_INS_BCHG = 29,
258 M68K_INS_BCLR = 30,
259 M68K_INS_BSET = 31,
260 M68K_INS_BTST = 32,
261 M68K_INS_BFCHG = 33,
262 M68K_INS_BFCLR = 34,
263 M68K_INS_BFEXTS = 35,
264 M68K_INS_BFEXTU = 36,
265 M68K_INS_BFFFO = 37,
266 M68K_INS_BFINS = 38,
267 M68K_INS_BFSET = 39,
268 M68K_INS_BFTST = 40,
269 M68K_INS_BKPT = 41,
270 M68K_INS_CALLM = 42,
271 M68K_INS_CAS = 43,
272 M68K_INS_CAS2 = 44,
273 M68K_INS_CHK = 45,
274 M68K_INS_CHK2 = 46,
275 M68K_INS_CLR = 47,
276 M68K_INS_CMP = 48,
277 M68K_INS_CMPA = 49,
278 M68K_INS_CMPI = 50,
279 M68K_INS_CMPM = 51,
280 M68K_INS_CMP2 = 52,
281 M68K_INS_CINVL = 53,
282 M68K_INS_CINVP = 54,
283 M68K_INS_CINVA = 55,
284 M68K_INS_CPUSHL = 56,
285 M68K_INS_CPUSHP = 57,
286 M68K_INS_CPUSHA = 58,
287 M68K_INS_DBT = 59,
288 M68K_INS_DBF = 60,
289 M68K_INS_DBHI = 61,
290 M68K_INS_DBLS = 62,
291 M68K_INS_DBCC = 63,
292 M68K_INS_DBCS = 64,
293 M68K_INS_DBNE = 65,
294 M68K_INS_DBEQ = 66,
295 M68K_INS_DBVC = 67,
296 M68K_INS_DBVS = 68,
297 M68K_INS_DBPL = 69,
298 M68K_INS_DBMI = 70,
299 M68K_INS_DBGE = 71,
300 M68K_INS_DBLT = 72,
301 M68K_INS_DBGT = 73,
302 M68K_INS_DBLE = 74,
303 M68K_INS_DBRA = 75,
304 M68K_INS_DIVS = 76,
305 M68K_INS_DIVSL = 77,
306 M68K_INS_DIVU = 78,
307 M68K_INS_DIVUL = 79,
308 M68K_INS_EOR = 80,
309 M68K_INS_EORI = 81,
310 M68K_INS_EXG = 82,
311 M68K_INS_EXT = 83,
312 M68K_INS_EXTB = 84,
313 M68K_INS_FABS = 85,
314 M68K_INS_FSABS = 86,
315 M68K_INS_FDABS = 87,
316 M68K_INS_FACOS = 88,
317 M68K_INS_FADD = 89,
318 M68K_INS_FSADD = 90,
319 M68K_INS_FDADD = 91,
320 M68K_INS_FASIN = 92,
321 M68K_INS_FATAN = 93,
322 M68K_INS_FATANH = 94,
323 M68K_INS_FBF = 95,
324 M68K_INS_FBEQ = 96,
325 M68K_INS_FBOGT = 97,
326 M68K_INS_FBOGE = 98,
327 M68K_INS_FBOLT = 99,
328 M68K_INS_FBOLE = 100,
329 M68K_INS_FBOGL = 101,
330 M68K_INS_FBOR = 102,
331 M68K_INS_FBUN = 103,
332 M68K_INS_FBUEQ = 104,
333 M68K_INS_FBUGT = 105,
334 M68K_INS_FBUGE = 106,
335 M68K_INS_FBULT = 107,
336 M68K_INS_FBULE = 108,
337 M68K_INS_FBNE = 109,
338 M68K_INS_FBT = 110,
339 M68K_INS_FBSF = 111,
340 M68K_INS_FBSEQ = 112,
341 M68K_INS_FBGT = 113,
342 M68K_INS_FBGE = 114,
343 M68K_INS_FBLT = 115,
344 M68K_INS_FBLE = 116,
345 M68K_INS_FBGL = 117,
346 M68K_INS_FBGLE = 118,
347 M68K_INS_FBNGLE = 119,
348 M68K_INS_FBNGL = 120,
349 M68K_INS_FBNLE = 121,
350 M68K_INS_FBNLT = 122,
351 M68K_INS_FBNGE = 123,
352 M68K_INS_FBNGT = 124,
353 M68K_INS_FBSNE = 125,
354 M68K_INS_FBST = 126,
355 M68K_INS_FCMP = 127,
356 M68K_INS_FCOS = 128,
357 M68K_INS_FCOSH = 129,
358 M68K_INS_FDBF = 130,
359 M68K_INS_FDBEQ = 131,
360 M68K_INS_FDBOGT = 132,
361 M68K_INS_FDBOGE = 133,
362 M68K_INS_FDBOLT = 134,
363 M68K_INS_FDBOLE = 135,
364 M68K_INS_FDBOGL = 136,
365 M68K_INS_FDBOR = 137,
366 M68K_INS_FDBUN = 138,
367 M68K_INS_FDBUEQ = 139,
368 M68K_INS_FDBUGT = 140,
369 M68K_INS_FDBUGE = 141,
370 M68K_INS_FDBULT = 142,
371 M68K_INS_FDBULE = 143,
372 M68K_INS_FDBNE = 144,
373 M68K_INS_FDBT = 145,
374 M68K_INS_FDBSF = 146,
375 M68K_INS_FDBSEQ = 147,
376 M68K_INS_FDBGT = 148,
377 M68K_INS_FDBGE = 149,
378 M68K_INS_FDBLT = 150,
379 M68K_INS_FDBLE = 151,
380 M68K_INS_FDBGL = 152,
381 M68K_INS_FDBGLE = 153,
382 M68K_INS_FDBNGLE = 154,
383 M68K_INS_FDBNGL = 155,
384 M68K_INS_FDBNLE = 156,
385 M68K_INS_FDBNLT = 157,
386 M68K_INS_FDBNGE = 158,
387 M68K_INS_FDBNGT = 159,
388 M68K_INS_FDBSNE = 160,
389 M68K_INS_FDBST = 161,
390 M68K_INS_FDIV = 162,
391 M68K_INS_FSDIV = 163,
392 M68K_INS_FDDIV = 164,
393 M68K_INS_FETOX = 165,
394 M68K_INS_FETOXM1 = 166,
395 M68K_INS_FGETEXP = 167,
396 M68K_INS_FGETMAN = 168,
397 M68K_INS_FINT = 169,
398 M68K_INS_FINTRZ = 170,
399 M68K_INS_FLOG10 = 171,
400 M68K_INS_FLOG2 = 172,
401 M68K_INS_FLOGN = 173,
402 M68K_INS_FLOGNP1 = 174,
403 M68K_INS_FMOD = 175,
404 M68K_INS_FMOVE = 176,
405 M68K_INS_FSMOVE = 177,
406 M68K_INS_FDMOVE = 178,
407 M68K_INS_FMOVECR = 179,
408 M68K_INS_FMOVEM = 180,
409 M68K_INS_FMUL = 181,
410 M68K_INS_FSMUL = 182,
411 M68K_INS_FDMUL = 183,
412 M68K_INS_FNEG = 184,
413 M68K_INS_FSNEG = 185,
414 M68K_INS_FDNEG = 186,
415 M68K_INS_FNOP = 187,
416 M68K_INS_FREM = 188,
417 M68K_INS_FRESTORE = 189,
418 M68K_INS_FSAVE = 190,
419 M68K_INS_FSCALE = 191,
420 M68K_INS_FSGLDIV = 192,
421 M68K_INS_FSGLMUL = 193,
422 M68K_INS_FSIN = 194,
423 M68K_INS_FSINCOS = 195,
424 M68K_INS_FSINH = 196,
425 M68K_INS_FSQRT = 197,
426 M68K_INS_FSSQRT = 198,
427 M68K_INS_FDSQRT = 199,
428 M68K_INS_FSF = 200,
429 M68K_INS_FSBEQ = 201,
430 M68K_INS_FSOGT = 202,
431 M68K_INS_FSOGE = 203,
432 M68K_INS_FSOLT = 204,
433 M68K_INS_FSOLE = 205,
434 M68K_INS_FSOGL = 206,
435 M68K_INS_FSOR = 207,
436 M68K_INS_FSUN = 208,
437 M68K_INS_FSUEQ = 209,
438 M68K_INS_FSUGT = 210,
439 M68K_INS_FSUGE = 211,
440 M68K_INS_FSULT = 212,
441 M68K_INS_FSULE = 213,
442 M68K_INS_FSNE = 214,
443 M68K_INS_FST = 215,
444 M68K_INS_FSSF = 216,
445 M68K_INS_FSSEQ = 217,
446 M68K_INS_FSGT = 218,
447 M68K_INS_FSGE = 219,
448 M68K_INS_FSLT = 220,
449 M68K_INS_FSLE = 221,
450 M68K_INS_FSGL = 222,
451 M68K_INS_FSGLE = 223,
452 M68K_INS_FSNGLE = 224,
453 M68K_INS_FSNGL = 225,
454 M68K_INS_FSNLE = 226,
455 M68K_INS_FSNLT = 227,
456 M68K_INS_FSNGE = 228,
457 M68K_INS_FSNGT = 229,
458 M68K_INS_FSSNE = 230,
459 M68K_INS_FSST = 231,
460 M68K_INS_FSUB = 232,
461 M68K_INS_FSSUB = 233,
462 M68K_INS_FDSUB = 234,
463 M68K_INS_FTAN = 235,
464 M68K_INS_FTANH = 236,
465 M68K_INS_FTENTOX = 237,
466 M68K_INS_FTRAPF = 238,
467 M68K_INS_FTRAPEQ = 239,
468 M68K_INS_FTRAPOGT = 240,
469 M68K_INS_FTRAPOGE = 241,
470 M68K_INS_FTRAPOLT = 242,
471 M68K_INS_FTRAPOLE = 243,
472 M68K_INS_FTRAPOGL = 244,
473 M68K_INS_FTRAPOR = 245,
474 M68K_INS_FTRAPUN = 246,
475 M68K_INS_FTRAPUEQ = 247,
476 M68K_INS_FTRAPUGT = 248,
477 M68K_INS_FTRAPUGE = 249,
478 M68K_INS_FTRAPULT = 250,
479 M68K_INS_FTRAPULE = 251,
480 M68K_INS_FTRAPNE = 252,
481 M68K_INS_FTRAPT = 253,
482 M68K_INS_FTRAPSF = 254,
483 M68K_INS_FTRAPSEQ = 255,
484 M68K_INS_FTRAPGT = 256,
485 M68K_INS_FTRAPGE = 257,
486 M68K_INS_FTRAPLT = 258,
487 M68K_INS_FTRAPLE = 259,
488 M68K_INS_FTRAPGL = 260,
489 M68K_INS_FTRAPGLE = 261,
490 M68K_INS_FTRAPNGLE = 262,
491 M68K_INS_FTRAPNGL = 263,
492 M68K_INS_FTRAPNLE = 264,
493 M68K_INS_FTRAPNLT = 265,
494 M68K_INS_FTRAPNGE = 266,
495 M68K_INS_FTRAPNGT = 267,
496 M68K_INS_FTRAPSNE = 268,
497 M68K_INS_FTRAPST = 269,
498 M68K_INS_FTST = 270,
499 M68K_INS_FTWOTOX = 271,
500 M68K_INS_HALT = 272,
501 M68K_INS_ILLEGAL = 273,
502 M68K_INS_JMP = 274,
503 M68K_INS_JSR = 275,
504 M68K_INS_LEA = 276,
505 M68K_INS_LINK = 277,
506 M68K_INS_LPSTOP = 278,
507 M68K_INS_LSL = 279,
508 M68K_INS_LSR = 280,
509 M68K_INS_MOVE = 281,
510 M68K_INS_MOVEA = 282,
511 M68K_INS_MOVEC = 283,
512 M68K_INS_MOVEM = 284,
513 M68K_INS_MOVEP = 285,
514 M68K_INS_MOVEQ = 286,
515 M68K_INS_MOVES = 287,
516 M68K_INS_MOVE16 = 288,
517 M68K_INS_MULS = 289,
518 M68K_INS_MULU = 290,
519 M68K_INS_NBCD = 291,
520 M68K_INS_NEG = 292,
521 M68K_INS_NEGX = 293,
522 M68K_INS_NOP = 294,
523 M68K_INS_NOT = 295,
524 M68K_INS_OR = 296,
525 M68K_INS_ORI = 297,
526 M68K_INS_PACK = 298,
527 M68K_INS_PEA = 299,
528 M68K_INS_PFLUSH = 300,
529 M68K_INS_PFLUSHA = 301,
530 M68K_INS_PFLUSHAN = 302,
531 M68K_INS_PFLUSHN = 303,
532 M68K_INS_PLOADR = 304,
533 M68K_INS_PLOADW = 305,
534 M68K_INS_PLPAR = 306,
535 M68K_INS_PLPAW = 307,
536 M68K_INS_PMOVE = 308,
537 M68K_INS_PMOVEFD = 309,
538 M68K_INS_PTESTR = 310,
539 M68K_INS_PTESTW = 311,
540 M68K_INS_PULSE = 312,
541 M68K_INS_REMS = 313,
542 M68K_INS_REMU = 314,
543 M68K_INS_RESET = 315,
544 M68K_INS_ROL = 316,
545 M68K_INS_ROR = 317,
546 M68K_INS_ROXL = 318,
547 M68K_INS_ROXR = 319,
548 M68K_INS_RTD = 320,
549 M68K_INS_RTE = 321,
550 M68K_INS_RTM = 322,
551 M68K_INS_RTR = 323,
552 M68K_INS_RTS = 324,
553 M68K_INS_SBCD = 325,
554 M68K_INS_ST = 326,
555 M68K_INS_SF = 327,
556 M68K_INS_SHI = 328,
557 M68K_INS_SLS = 329,
558 M68K_INS_SCC = 330,
559 M68K_INS_SHS = 331,
560 M68K_INS_SCS = 332,
561 M68K_INS_SLO = 333,
562 M68K_INS_SNE = 334,
563 M68K_INS_SEQ = 335,
564 M68K_INS_SVC = 336,
565 M68K_INS_SVS = 337,
566 M68K_INS_SPL = 338,
567 M68K_INS_SMI = 339,
568 M68K_INS_SGE = 340,
569 M68K_INS_SLT = 341,
570 M68K_INS_SGT = 342,
571 M68K_INS_SLE = 343,
572 M68K_INS_STOP = 344,
573 M68K_INS_SUB = 345,
574 M68K_INS_SUBA = 346,
575 M68K_INS_SUBI = 347,
576 M68K_INS_SUBQ = 348,
577 M68K_INS_SUBX = 349,
578 M68K_INS_SWAP = 350,
579 M68K_INS_TAS = 351,
580 M68K_INS_TRAP = 352,
581 M68K_INS_TRAPV = 353,
582 M68K_INS_TRAPT = 354,
583 M68K_INS_TRAPF = 355,
584 M68K_INS_TRAPHI = 356,
585 M68K_INS_TRAPLS = 357,
586 M68K_INS_TRAPCC = 358,
587 M68K_INS_TRAPHS = 359,
588 M68K_INS_TRAPCS = 360,
589 M68K_INS_TRAPLO = 361,
590 M68K_INS_TRAPNE = 362,
591 M68K_INS_TRAPEQ = 363,
592 M68K_INS_TRAPVC = 364,
593 M68K_INS_TRAPVS = 365,
594 M68K_INS_TRAPPL = 366,
595 M68K_INS_TRAPMI = 367,
596 M68K_INS_TRAPGE = 368,
597 M68K_INS_TRAPLT = 369,
598 M68K_INS_TRAPGT = 370,
599 M68K_INS_TRAPLE = 371,
600 M68K_INS_TST = 372,
601 M68K_INS_UNLK = 373,
602 M68K_INS_UNPK = 374,
603 M68K_INS_ENDING = 375 // <-- mark the end of the list of instructions
604 }
605
606 /// Group of M68K instructions
607 enum m68k_group_type
608 {
609 M68K_GRP_INVALID = 0, ///< CS_GRUP_INVALID
610 M68K_GRP_JUMP = 1, ///< = CS_GRP_JUMP
611 M68K_GRP_RET = 3, ///< = CS_GRP_RET
612 M68K_GRP_IRET = 5, ///< = CS_GRP_IRET
613 M68K_GRP_BRANCH_RELATIVE = 7, ///< = CS_GRP_BRANCH_RELATIVE
614
615 M68K_GRP_ENDING = 8 // <-- mark the end of the list of groups
616 }