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 }