m680x.h
Go to the documentation of this file.
1 #ifndef CAPSTONE_M680X_H
2 #define CAPSTONE_M680X_H
3 
4 /* Capstone Disassembly Engine */
5 /* M680X Backend by Wolfgang Schwotzer <wolfgang.schwotzer@gmx.net> 2017 */
6 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
11 #include "platform.h"
12 
13 #ifdef _MSC_VER
14 #pragma warning(disable:4201)
15 #endif
16 
17 #define M680X_OPERAND_COUNT 9
18 
20 typedef enum m680x_reg {
22 
28 
31 
35 
43 
45 
47 
50 
52 } m680x_reg;
53 
55 typedef enum m680x_op_type {
66 
67 // Supported bit values for mem.idx.offset_bits
68 #define M680X_OFFSET_NONE 0
69 #define M680X_OFFSET_BITS_5 5
70 #define M680X_OFFSET_BITS_8 8
71 #define M680X_OFFSET_BITS_9 9
72 #define M680X_OFFSET_BITS_16 16
73 
74 // Supported bit flags for mem.idx.flags
75 // These flags can be combined
76 #define M680X_IDX_INDIRECT 1
77 #define M680X_IDX_NO_COMMA 2
78 #define M680X_IDX_POST_INC_DEC 4
79 
81 typedef struct m680x_op_idx {
85  int16_t offset;
91  uint8_t flags;
97 } m680x_op_idx;
98 
100 typedef struct m680x_op_rel {
102  int16_t offset;
105 } m680x_op_rel;
106 
108 typedef struct m680x_op_ext {
110  bool indirect;
111 } m680x_op_ext;
112 
114 typedef struct cs_m680x_op {
116  union {
124  };
126  uint8_t access;
130 } cs_m680x_op;
131 
133 typedef enum m680x_group_type {
135  // Generic groups
136  // all jump instructions (conditional+direct+indirect jumps)
138  // all call instructions
140  // all return instructions
142  // all interrupt instructions (int+syscall)
144  // all interrupt return instructions
146  // all privileged instructions
148  // all relative branching instructions
150 
151  // Architecture-specific groups
152  M680X_GRP_ENDING, // <-- mark the end of the list of groups
154 
155 // M680X instruction flags:
156 
159 #define M680X_FIRST_OP_IN_MNEM 1
160 #define M680X_SECOND_OP_IN_MNEM 2
163 
165 typedef struct cs_m680x {
169 } cs_m680x;
170 
172 typedef enum m680x_insn {
530  M680X_INS_ENDING, // <-- mark the end of the list of instructions
531 } m680x_insn;
532 
533 #ifdef __cplusplus
534 }
535 #endif
536 
537 #endif
M680X_INS_ANDD
@ M680X_INS_ANDD
Definition: m680x.h:197
M680X_INS_CPHX
@ M680X_INS_CPHX
Definition: m680x.h:285
M680X_INS_MEM
@ M680X_INS_MEM
Definition: m680x.h:396
cs_m680x_op
struct cs_m680x_op cs_m680x_op
Instruction operand.
M680X_INS_SEXW
@ M680X_INS_SEXW
Definition: m680x.h:469
M680X_INS_CMPW
@ M680X_INS_CMPW
Definition: m680x.h:273
M680X_INS_EOR
@ M680X_INS_EOR
Definition: m680x.h:320
M680X_INS_CPX
@ M680X_INS_CPX
M6800/1/2/3.
Definition: m680x.h:287
M680X_INS_CLI
@ M680X_INS_CLI
M6800/1/2/3.
Definition: m680x.h:253
m680x_op_rel
struct m680x_op_rel m680x_op_rel
Instruction's memory operand referring to relative addressing (Bcc/LBcc)
M680X_INS_LBLS
@ M680X_INS_LBLS
Definition: m680x.h:353
M680X_INS_LBGE
@ M680X_INS_LBGE
Definition: m680x.h:349
M680X_INS_PSHC
@ M680X_INS_PSHC
Definition: m680x.h:421
M680X_INS_BCLR
@ M680X_INS_BCLR
Definition: m680x.h:210
M680X_REG_S
@ M680X_REG_S
M6809/M6309.
Definition: m680x.h:40
M680X_INS_PULB
@ M680X_INS_PULB
M6800/1/2/3.
Definition: m680x.h:431
M680X_INS_STX
@ M680X_INS_STX
Definition: m680x.h:485
m680x_op_ext::indirect
bool indirect
true if extended indirect addressing
Definition: m680x.h:110
m680x_op_idx
struct m680x_op_idx m680x_op_idx
Instruction's operand referring to indexed addressing.
M680X_GRP_PRIV
@ M680X_GRP_PRIV
= CS_GRP_PRIVILEDGE; not used
Definition: m680x.h:147
M680X_INS_BGT
@ M680X_INS_BGT
Definition: m680x.h:216
M680X_INS_SEX
@ M680X_INS_SEX
Definition: m680x.h:468
M680X_INS_MULD
@ M680X_INS_MULD
Definition: m680x.h:403
m680x_op_idx::inc_dec
int8_t inc_dec
Definition: m680x.h:90
M680X_INS_DBNE
@ M680X_INS_DBNE
Definition: m680x.h:292
M680X_INS_BCC
@ M680X_INS_BCC
or BHS
Definition: m680x.h:209
M680X_INS_MOVB
@ M680X_INS_MOVB
Definition: m680x.h:400
M680X_INS_TPA
@ M680X_INS_TPA
M6800/1/2/3.
Definition: m680x.h:510
M680X_INS_EMULS
@ M680X_INS_EMULS
Definition: m680x.h:319
M680X_REG_E
@ M680X_REG_E
HD6309.
Definition: m680x.h:25
M680X_INS_CWAI
@ M680X_INS_CWAI
Definition: m680x.h:289
M680X_INS_DECX
@ M680X_INS_DECX
Definition: m680x.h:303
m680x_op_idx::offset_addr
uint16_t offset_addr
Definition: m680x.h:87
M680X_INS_COMB
@ M680X_INS_COMB
Definition: m680x.h:278
M680X_INS_XGDX
@ M680X_INS_XGDX
HD6301.
Definition: m680x.h:528
M680X_INS_TFR
@ M680X_INS_TFR
Definition: m680x.h:508
M680X_INS_PULC
@ M680X_INS_PULC
Definition: m680x.h:432
M680X_INS_ORB
@ M680X_INS_ORB
Definition: m680x.h:415
M680X_INS_AND
@ M680X_INS_AND
Definition: m680x.h:193
M680X_INS_SBCD
@ M680X_INS_SBCD
Definition: m680x.h:463
M680X_INS_ORCC
@ M680X_INS_ORCC
Definition: m680x.h:416
m680x_op_idx::offset_bits
uint8_t offset_bits
offset width in bits for indexed addressing
Definition: m680x.h:89
M680X_INS_AIM
@ M680X_INS_AIM
Definition: m680x.h:190
M680X_INS_TST
@ M680X_INS_TST
Definition: m680x.h:511
M680X_INS_RTI
@ M680X_INS_RTI
Definition: m680x.h:457
M680X_INS_PSHX
@ M680X_INS_PSHX
M6800/1/2/3.
Definition: m680x.h:428
M680X_INS_BITB
@ M680X_INS_BITB
Definition: m680x.h:227
M680X_INS_CLRA
@ M680X_INS_CLRA
Definition: m680x.h:255
M680X_OP_CONSTANT
@ M680X_OP_CONSTANT
Used e.g. for a bit index or page number.
Definition: m680x.h:63
M680X_INS_STE
@ M680X_INS_STE
Definition: m680x.h:477
M680X_INS_DBNZ
@ M680X_INS_DBNZ
Definition: m680x.h:293
M680X_INS_PULSW
@ M680X_INS_PULSW
Definition: m680x.h:436
M680X_INS_LBGT
@ M680X_INS_LBGT
Definition: m680x.h:350
M680X_INS_TBL
@ M680X_INS_TBL
Definition: m680x.h:504
M680X_INS_STU
@ M680X_INS_STU
Definition: m680x.h:483
M680X_OP_EXTENDED
@ M680X_OP_EXTENDED
= Extended addressing operand.
Definition: m680x.h:60
M680X_INS_INCD
@ M680X_INS_INCD
Definition: m680x.h:336
M680X_INS_NEG
@ M680X_INS_NEG
Definition: m680x.h:404
M680X_INS_STAB
@ M680X_INS_STAB
M6800/1/2/3.
Definition: m680x.h:473
M680X_INS_AIS
@ M680X_INS_AIS
Definition: m680x.h:191
M680X_INS_STY
@ M680X_INS_STY
Definition: m680x.h:486
M680X_INS_TAB
@ M680X_INS_TAB
M6800/1/2/3.
Definition: m680x.h:499
uint16_t
unsigned short uint16_t
Definition: stdint-msvc2008.h:79
M680X_OP_DIRECT
@ M680X_OP_DIRECT
= Direct addressing operand.
Definition: m680x.h:61
cs_m680x_op::direct_addr
uint8_t direct_addr
</ Direct address (lower 8-bit)
Definition: m680x.h:122
M680X_INS_INCB
@ M680X_INS_INCB
Definition: m680x.h:335
M680X_INS_EORA
@ M680X_INS_EORA
Definition: m680x.h:321
M680X_INS_ASLA
@ M680X_INS_ASLA
Definition: m680x.h:200
M680X_OP_IMMEDIATE
@ M680X_OP_IMMEDIATE
= Immediate operand.
Definition: m680x.h:58
M680X_INS_ADDD
@ M680X_INS_ADDD
Definition: m680x.h:185
M680X_INS_MAXA
@ M680X_INS_MAXA
Definition: m680x.h:394
M680X_REG_A
@ M680X_REG_A
M6800/1/2/3/9, HD6301/9.
Definition: m680x.h:23
M680X_INS_OIM
@ M680X_INS_OIM
Definition: m680x.h:411
M680X_INS_EMIND
@ M680X_INS_EMIND
Definition: m680x.h:316
M680X_INS_PULX
@ M680X_INS_PULX
M6800/1/2/3.
Definition: m680x.h:439
M680X_INS_EMINM
@ M680X_INS_EMINM
Definition: m680x.h:317
M680X_INS_STA
@ M680X_INS_STA
Definition: m680x.h:471
M680X_INS_DECB
@ M680X_INS_DECB
Definition: m680x.h:298
M680X_INS_TXA
@ M680X_INS_TXA
Definition: m680x.h:521
M680X_INS_LDQ
@ M680X_INS_LDQ
Definition: m680x.h:373
cs_m680x_op::access
uint8_t access
Definition: m680x.h:129
M680X_INS_IBEQ
@ M680X_INS_IBEQ
Definition: m680x.h:328
m680x_op_ext
Instruction's operand referring to extended addressing.
Definition: m680x.h:108
M680X_INS_SBA
@ M680X_INS_SBA
M6800/1/2/3.
Definition: m680x.h:459
M680X_INS_MAXM
@ M680X_INS_MAXM
Definition: m680x.h:395
M680X_INS_IBNE
@ M680X_INS_IBNE
Definition: m680x.h:329
M680X_INS_ASR
@ M680X_INS_ASR
Definition: m680x.h:203
M680X_INS_LDU
@ M680X_INS_LDU
Definition: m680x.h:375
M680X_INS_INCA
@ M680X_INS_INCA
Definition: m680x.h:334
M680X_INS_ADCR
@ M680X_INS_ADCR
Definition: m680x.h:181
M680X_INS_EORD
@ M680X_INS_EORD
Definition: m680x.h:323
m680x_reg
m680x_reg
M680X registers and special registers.
Definition: m680x.h:20
M680X_INS_SEI
@ M680X_INS_SEI
Definition: m680x.h:466
M680X_INS_ASLB
@ M680X_INS_ASLB
Definition: m680x.h:201
M680X_INS_JMP
@ M680X_INS_JMP
Definition: m680x.h:344
M680X_GRP_JUMP
@ M680X_GRP_JUMP
= CS_GRP_INVALID
Definition: m680x.h:137
M680X_INS_INCW
@ M680X_INS_INCW
Definition: m680x.h:339
M680X_INS_ABX
@ M680X_INS_ABX
Definition: m680x.h:175
M680X_INS_ADDW
@ M680X_INS_ADDW
Definition: m680x.h:189
M680X_INS_SUB
@ M680X_INS_SUB
Definition: m680x.h:487
M680X_INS_EMAXD
@ M680X_INS_EMAXD
Definition: m680x.h:314
M680X_INS_ROL
@ M680X_INS_ROL
Definition: m680x.h:443
M680X_INS_ADDE
@ M680X_INS_ADDE
Definition: m680x.h:186
M680X_INS_BRCLR
@ M680X_INS_BRCLR
Definition: m680x.h:239
M680X_INS_NEGA
@ M680X_INS_NEGA
Definition: m680x.h:405
M680X_REG_HX
@ M680X_REG_HX
M6808.
Definition: m680x.h:36
M680X_INS_ASRA
@ M680X_INS_ASRA
Definition: m680x.h:204
M680X_INS_SYNC
@ M680X_INS_SYNC
Definition: m680x.h:498
M680X_INS_INCX
@ M680X_INS_INCX
Definition: m680x.h:340
M680X_INS_BIH
@ M680X_INS_BIH
Definition: m680x.h:222
M680X_INS_STS
@ M680X_INS_STS
Definition: m680x.h:482
M680X_INS_DBNZX
@ M680X_INS_DBNZX
Definition: m680x.h:295
M680X_INS_ASRB
@ M680X_INS_ASRB
Definition: m680x.h:205
M680X_INS_SBCA
@ M680X_INS_SBCA
Definition: m680x.h:461
m680x_insn
m680x_insn
M680X instruction IDs.
Definition: m680x.h:172
M680X_INS_LSRD
@ M680X_INS_LSRD
or ASRD
Definition: m680x.h:391
M680X_INS_LSLD
@ M680X_INS_LSLD
Definition: m680x.h:386
M680X_INS_PSHS
@ M680X_INS_PSHS
Definition: m680x.h:424
M680X_INS_PSHB
@ M680X_INS_PSHB
M6800/1/2/3.
Definition: m680x.h:420
M680X_INS_LBVC
@ M680X_INS_LBVC
Definition: m680x.h:361
M680X_INS_PSHD
@ M680X_INS_PSHD
Definition: m680x.h:422
M680X_INS_BITMD
@ M680X_INS_BITMD
Definition: m680x.h:229
M680X_INS_SEV
@ M680X_INS_SEV
Definition: m680x.h:467
M680X_INS_CLRX
@ M680X_INS_CLRX
Definition: m680x.h:262
M680X_INS_BHI
@ M680X_INS_BHI
Definition: m680x.h:219
M680X_INS_LDD
@ M680X_INS_LDD
Definition: m680x.h:368
M680X_INS_LBLT
@ M680X_INS_LBLT
Definition: m680x.h:354
M680X_INS_ROLD
@ M680X_INS_ROLD
Definition: m680x.h:446
M680X_INS_EDIV
@ M680X_INS_EDIV
Definition: m680x.h:310
M680X_INS_ABY
@ M680X_INS_ABY
Definition: m680x.h:176
m680x_op_rel
Instruction's memory operand referring to relative addressing (Bcc/LBcc)
Definition: m680x.h:100
M680X_INS_DIVQ
@ M680X_INS_DIVQ
Definition: m680x.h:309
M680X_INS_CPY
@ M680X_INS_CPY
Definition: m680x.h:288
uint8_t
unsigned char uint8_t
Definition: stdint-msvc2008.h:78
M680X_INS_ORAA
@ M680X_INS_ORAA
M6800/1/2/3.
Definition: m680x.h:413
M680X_INS_INC
@ M680X_INS_INC
Definition: m680x.h:333
M680X_INS_CMPX
@ M680X_INS_CMPX
Definition: m680x.h:274
M680X_INS_SUBA
@ M680X_INS_SUBA
Definition: m680x.h:488
M680X_INS_WAIT
@ M680X_INS_WAIT
Definition: m680x.h:525
M680X_INS_INCF
@ M680X_INS_INCF
Definition: m680x.h:338
M680X_INS_LDA
@ M680X_INS_LDA
Definition: m680x.h:363
M680X_INS_DBEQ
@ M680X_INS_DBEQ
Definition: m680x.h:291
cs_m680x::op_count
uint8_t op_count
number of operands for the instruction or 0
Definition: m680x.h:167
cs_m680x_op::size
uint8_t size
Definition: m680x.h:125
M680X_GRP_IRET
@ M680X_GRP_IRET
= CS_GRP_IRET
Definition: m680x.h:145
M680X_INS_PULUW
@ M680X_INS_PULUW
Definition: m680x.h:438
M680X_INS_ORR
@ M680X_INS_ORR
Definition: m680x.h:418
M680X_INS_TSTD
@ M680X_INS_TSTD
Definition: m680x.h:514
M680X_INS_NSA
@ M680X_INS_NSA
Definition: m680x.h:410
M680X_INS_TSTA
@ M680X_INS_TSTA
Definition: m680x.h:512
M680X_GRP_BRAREL
@ M680X_GRP_BRAREL
= CS_GRP_BRANCH_RELATIVE
Definition: m680x.h:149
M680X_INS_CLRF
@ M680X_INS_CLRF
Definition: m680x.h:259
M680X_INS_LBCS
@ M680X_INS_LBCS
or LBLO
Definition: m680x.h:347
M680X_INS_EIM
@ M680X_INS_EIM
Definition: m680x.h:312
M680X_REG_W
@ M680X_REG_W
HD6309.
Definition: m680x.h:30
M680X_INS_TSTE
@ M680X_INS_TSTE
Definition: m680x.h:515
M680X_INS_BIAND
@ M680X_INS_BIAND
Definition: m680x.h:220
M680X_INS_NEGB
@ M680X_INS_NEGB
Definition: m680x.h:406
M680X_INS_MINA
@ M680X_INS_MINA
Definition: m680x.h:397
M680X_INS_EMACS
@ M680X_INS_EMACS
Definition: m680x.h:313
M680X_INS_LDE
@ M680X_INS_LDE
Definition: m680x.h:369
M680X_GRP_INVALID
@ M680X_GRP_INVALID
Definition: m680x.h:134
M680X_INS_RTC
@ M680X_INS_RTC
Definition: m680x.h:456
M680X_INS_AIX
@ M680X_INS_AIX
Definition: m680x.h:192
M680X_INS_BVS
@ M680X_INS_BVS
Definition: m680x.h:246
M680X_OPERAND_COUNT
#define M680X_OPERAND_COUNT
Definition: m680x.h:17
M680X_INS_LEAS
@ M680X_INS_LEAS
Definition: m680x.h:379
M680X_INS_CMPY
@ M680X_INS_CMPY
Definition: m680x.h:275
cs_m680x_op::idx
m680x_op_idx idx
Indexed addressing operand.
Definition: m680x.h:119
M680X_INS_ORD
@ M680X_INS_ORD
Definition: m680x.h:417
M680X_INS_ROLA
@ M680X_INS_ROLA
Definition: m680x.h:444
M680X_INS_WAVR
@ M680X_INS_WAVR
Definition: m680x.h:527
M680X_INS_LDAB
@ M680X_INS_LDAB
M6800/1/2/3.
Definition: m680x.h:365
M680X_INS_BSR
@ M680X_INS_BSR
Definition: m680x.h:244
M680X_INS_RORW
@ M680X_INS_RORW
Definition: m680x.h:453
M680X_INS_BRSET
@ M680X_INS_BRSET
Definition: m680x.h:240
M680X_REG_DP
@ M680X_REG_DP
M6809/M6309.
Definition: m680x.h:33
M680X_INS_XGDY
@ M680X_INS_XGDY
Definition: m680x.h:529
M680X_INS_COMA
@ M680X_INS_COMA
Definition: m680x.h:277
int16_t
signed short int16_t
Definition: stdint-msvc2008.h:76
M680X_INS_LBLE
@ M680X_INS_LBLE
Definition: m680x.h:352
M680X_REG_D
@ M680X_REG_D
M6801/3/9, HD6301/9.
Definition: m680x.h:29
cs_m680x_op::imm
int32_t imm
immediate value for IMM operand
Definition: m680x.h:117
M680X_INS_DIVD
@ M680X_INS_DIVD
Definition: m680x.h:308
M680X_INS_PSHA
@ M680X_INS_PSHA
M6800/1/2/3.
Definition: m680x.h:419
M680X_INS_TBEQ
@ M680X_INS_TBEQ
Definition: m680x.h:503
M680X_INS_RORD
@ M680X_INS_RORD
Definition: m680x.h:452
M680X_INS_LSRX
@ M680X_INS_LSRX
Definition: m680x.h:393
M680X_INS_LSRW
@ M680X_INS_LSRW
Definition: m680x.h:392
M680X_INS_ANDA
@ M680X_INS_ANDA
Definition: m680x.h:194
m680x_op_type
m680x_op_type
Operand type for instruction's operands.
Definition: m680x.h:55
M680X_INS_LSLA
@ M680X_INS_LSLA
Definition: m680x.h:384
M680X_INS_RSP
@ M680X_INS_RSP
Definition: m680x.h:455
M680X_INS_ENDING
@ M680X_INS_ENDING
Definition: m680x.h:530
M680X_INS_BRA
@ M680X_INS_BRA
Definition: m680x.h:241
M680X_INS_LDBT
@ M680X_INS_LDBT
Definition: m680x.h:367
M680X_INS_SUBR
@ M680X_INS_SUBR
Definition: m680x.h:493
M680X_INS_CALL
@ M680X_INS_CALL
Definition: m680x.h:247
M680X_INS_ABA
@ M680X_INS_ABA
M6800/1/2/3.
Definition: m680x.h:174
M680X_INS_ADCB
@ M680X_INS_ADCB
Definition: m680x.h:179
m680x_op_idx::offset_reg
m680x_reg offset_reg
Definition: m680x.h:84
M680X_INS_ADD
@ M680X_INS_ADD
Definition: m680x.h:182
M680X_INS_RORA
@ M680X_INS_RORA
Definition: m680x.h:450
M680X_INS_MOVW
@ M680X_INS_MOVW
Definition: m680x.h:401
M680X_INS_BIT
@ M680X_INS_BIT
Definition: m680x.h:225
M680X_INS_NEGX
@ M680X_INS_NEGX
Definition: m680x.h:408
m680x_op_rel::offset
int16_t offset
the offset/displacement value
Definition: m680x.h:104
M680X_INS_COME
@ M680X_INS_COME
Definition: m680x.h:280
M680X_INS_LSRB
@ M680X_INS_LSRB
Definition: m680x.h:390
M680X_INS_BEOR
@ M680X_INS_BEOR
Definition: m680x.h:212
M680X_INS_INCE
@ M680X_INS_INCE
Definition: m680x.h:337
M680X_INS_CMP
@ M680X_INS_CMP
Definition: m680x.h:264
M680X_INS_STW
@ M680X_INS_STW
Definition: m680x.h:484
platform.h
M680X_INS_CMPE
@ M680X_INS_CMPE
Definition: m680x.h:268
M680X_INS_DBNZA
@ M680X_INS_DBNZA
Definition: m680x.h:294
M680X_INS_MOV
@ M680X_INS_MOV
Definition: m680x.h:399
M680X_INS_WAV
@ M680X_INS_WAV
Definition: m680x.h:526
M680X_INS_CBEQ
@ M680X_INS_CBEQ
Definition: m680x.h:249
M680X_REG_Q
@ M680X_REG_Q
M6309.
Definition: m680x.h:44
M680X_INS_LDX
@ M680X_INS_LDX
Definition: m680x.h:377
M680X_INS_SUBW
@ M680X_INS_SUBW
Definition: m680x.h:494
M680X_INS_LEAU
@ M680X_INS_LEAU
Definition: m680x.h:380
M680X_INS_CMPS
@ M680X_INS_CMPS
Definition: m680x.h:271
M680X_INS_LBVS
@ M680X_INS_LBVS
Definition: m680x.h:362
M680X_INS_TXS
@ M680X_INS_TXS
M6800/1/2/3.
Definition: m680x.h:522
M680X_INS_CBEQX
@ M680X_INS_CBEQX
Definition: m680x.h:251
M680X_INS_SEC
@ M680X_INS_SEC
Definition: m680x.h:465
M680X_INS_LBMI
@ M680X_INS_LBMI
Definition: m680x.h:355
M680X_INS_PSHSW
@ M680X_INS_PSHSW
Definition: m680x.h:425
M680X_INS_BVC
@ M680X_INS_BVC
Definition: m680x.h:245
M680X_INS_ADC
@ M680X_INS_ADC
Definition: m680x.h:177
M680X_REG_PC
@ M680X_REG_PC
M6800/1/2/3/9, M6301/9.
Definition: m680x.h:46
M680X_INS_TIM
@ M680X_INS_TIM
Definition: m680x.h:509
M680X_INS_BCS
@ M680X_INS_BCS
or BLO
Definition: m680x.h:211
M680X_INS_BLE
@ M680X_INS_BLE
Definition: m680x.h:230
M680X_INS_TAX
@ M680X_INS_TAX
Definition: m680x.h:501
M680X_INS_ROLX
@ M680X_INS_ROLX
Definition: m680x.h:448
M680X_INS_PSHU
@ M680X_INS_PSHU
Definition: m680x.h:426
M680X_INS_CMPD
@ M680X_INS_CMPD
Definition: m680x.h:267
M680X_INS_STD
@ M680X_INS_STD
Definition: m680x.h:476
M680X_INS_BITD
@ M680X_INS_BITD
Definition: m680x.h:228
M680X_INS_SBCB
@ M680X_INS_SBCB
Definition: m680x.h:462
M680X_INS_LSL
@ M680X_INS_LSL
Definition: m680x.h:383
M680X_INS_EXG
@ M680X_INS_EXG
Definition: m680x.h:326
M680X_REG_X
@ M680X_REG_X
M6800/1/2/3/9, M6301/9.
Definition: m680x.h:38
M680X_INS_BLT
@ M680X_INS_BLT
Definition: m680x.h:232
M680X_INS_TSX
@ M680X_INS_TSX
M6800/1/2/3.
Definition: m680x.h:519
M680X_GRP_INT
@ M680X_GRP_INT
= CS_GRP_INT
Definition: m680x.h:143
M680X_REG_U
@ M680X_REG_U
M6809/M6309.
Definition: m680x.h:41
M680X_REG_0
@ M680X_REG_0
HD6309.
Definition: m680x.h:27
M680X_INS_NEGD
@ M680X_INS_NEGD
Definition: m680x.h:407
cs_m680x::flags
uint8_t flags
See: M680X instruction flags.
Definition: m680x.h:166
M680X_INS_STHX
@ M680X_INS_STHX
Definition: m680x.h:480
M680X_INS_INS
@ M680X_INS_INS
M6800/1/2/3.
Definition: m680x.h:341
cs_m680x
The M680X instruction and it's operands.
Definition: m680x.h:165
M680X_INS_PULD
@ M680X_INS_PULD
Definition: m680x.h:433
M680X_INS_CLRW
@ M680X_INS_CLRW
Definition: m680x.h:261
M680X_INS_TSTF
@ M680X_INS_TSTF
Definition: m680x.h:516
M680X_REG_V
@ M680X_REG_V
M6309.
Definition: m680x.h:42
M680X_INS_TSY
@ M680X_INS_TSY
Definition: m680x.h:520
M680X_INS_COMF
@ M680X_INS_COMF
Definition: m680x.h:281
M680X_INS_TSTX
@ M680X_INS_TSTX
Definition: m680x.h:518
M680X_INS_BHCS
@ M680X_INS_BHCS
Definition: m680x.h:218
cs_m680x_op::reg
m680x_reg reg
register value for REG operand
Definition: m680x.h:118
M680X_INS_BMC
@ M680X_INS_BMC
Definition: m680x.h:233
M680X_INS_TAP
@ M680X_INS_TAP
M6800/1/2/3.
Definition: m680x.h:500
M680X_INS_CLRD
@ M680X_INS_CLRD
Definition: m680x.h:257
M680X_GRP_CALL
@ M680X_GRP_CALL
= CS_GRP_CALL
Definition: m680x.h:139
M680X_INS_LBCC
@ M680X_INS_LBCC
or LBHS
Definition: m680x.h:346
M680X_INS_LEAY
@ M680X_INS_LEAY
Definition: m680x.h:382
M680X_INS_ADDR
@ M680X_INS_ADDR
Definition: m680x.h:188
M680X_INS_STAA
@ M680X_INS_STAA
M6800/1/2/3.
Definition: m680x.h:472
M680X_INS_EORB
@ M680X_INS_EORB
Definition: m680x.h:322
M680X_INS_LBRA
@ M680X_INS_LBRA
Definition: m680x.h:358
M680X_INS_BIEOR
@ M680X_INS_BIEOR
Definition: m680x.h:221
M680X_INS_INVLD
@ M680X_INS_INVLD
Definition: m680x.h:173
M680X_INS_DES
@ M680X_INS_DES
M6800/1/2/3.
Definition: m680x.h:304
m680x_op_idx::offset
int16_t offset
5-,8- or 16-bit offset. See also offset_bits.
Definition: m680x.h:86
M680X_INS_LDB
@ M680X_INS_LDB
Definition: m680x.h:366
M680X_INS_COM
@ M680X_INS_COM
Definition: m680x.h:276
cs_m680x::operands
cs_m680x_op operands[M680X_OPERAND_COUNT]
operands for this insn.
Definition: m680x.h:168
M680X_INS_STBT
@ M680X_INS_STBT
Definition: m680x.h:475
M680X_INS_DAA
@ M680X_INS_DAA
Definition: m680x.h:290
M680X_INS_BMI
@ M680X_INS_BMI
Definition: m680x.h:234
M680X_INS_EMUL
@ M680X_INS_EMUL
Definition: m680x.h:318
M680X_INS_BOR
@ M680X_INS_BOR
Definition: m680x.h:237
M680X_INS_LEAX
@ M680X_INS_LEAX
Definition: m680x.h:381
M680X_INS_COMX
@ M680X_INS_COMX
Definition: m680x.h:283
m680x_op_rel::address
uint16_t address
Definition: m680x.h:101
M680X_INS_CMPB
@ M680X_INS_CMPB
Definition: m680x.h:266
M680X_INS_ANDR
@ M680X_INS_ANDR
Definition: m680x.h:198
m680x_op_idx::flags
uint8_t flags
8-bit flags (see above)
Definition: m680x.h:96
M680X_REG_TMP2
@ M680X_REG_TMP2
CPU12.
Definition: m680x.h:48
M680X_INS_TFM
@ M680X_INS_TFM
Definition: m680x.h:507
M680X_REG_F
@ M680X_REG_F
HD6309.
Definition: m680x.h:26
M680X_GRP_ENDING
@ M680X_GRP_ENDING
Definition: m680x.h:152
M680X_INS_ADDF
@ M680X_INS_ADDF
Definition: m680x.h:187
M680X_INS_ROLB
@ M680X_INS_ROLB
Definition: m680x.h:445
M680X_INS_LDHX
@ M680X_INS_LDHX
Definition: m680x.h:371
M680X_INS_STOP
@ M680X_INS_STOP
Definition: m680x.h:479
M680X_INS_CLRE
@ M680X_INS_CLRE
Definition: m680x.h:258
M680X_INS_ADCD
@ M680X_INS_ADCD
Definition: m680x.h:180
M680X_INS_BITA
@ M680X_INS_BITA
Definition: m680x.h:226
M680X_INS_BAND
@ M680X_INS_BAND
Definition: m680x.h:208
M680X_INS_LBPL
@ M680X_INS_LBPL
Definition: m680x.h:357
M680X_INS_ASRD
@ M680X_INS_ASRD
Definition: m680x.h:206
M680X_INS_BLS
@ M680X_INS_BLS
Definition: m680x.h:231
M680X_INS_SUBD
@ M680X_INS_SUBD
Definition: m680x.h:490
M680X_INS_PULU
@ M680X_INS_PULU
Definition: m680x.h:437
M680X_INS_ORAB
@ M680X_INS_ORAB
M6800/1/2/3.
Definition: m680x.h:414
M680X_INS_PSHH
@ M680X_INS_PSHH
Definition: m680x.h:423
M680X_INS_PULA
@ M680X_INS_PULA
M6800/1/2/3.
Definition: m680x.h:430
M680X_INS_BRN
@ M680X_INS_BRN
Definition: m680x.h:242
M680X_REG_Y
@ M680X_REG_Y
M6809/M6309.
Definition: m680x.h:39
cs_m680x_op::ext
m680x_op_ext ext
Extended address.
Definition: m680x.h:121
M680X_INS_TYS
@ M680X_INS_TYS
Definition: m680x.h:523
M680X_INS_CPD
@ M680X_INS_CPD
Definition: m680x.h:284
M680X_INS_SUBB
@ M680X_INS_SUBB
Definition: m680x.h:489
M680X_INS_INY
@ M680X_INS_INY
Definition: m680x.h:343
M680X_OP_RELATIVE
@ M680X_OP_RELATIVE
= Relative addressing operand.
Definition: m680x.h:62
M680X_INS_STQ
@ M680X_INS_STQ
Definition: m680x.h:481
M680X_REG_MD
@ M680X_REG_MD
M6309.
Definition: m680x.h:34
M680X_INS_NOP
@ M680X_INS_NOP
Definition: m680x.h:409
M680X_INS_LDS
@ M680X_INS_LDS
Definition: m680x.h:374
M680X_INS_LDMD
@ M680X_INS_LDMD
Definition: m680x.h:372
M680X_OP_INDEXED
@ M680X_OP_INDEXED
= Indexed addressing operand.
Definition: m680x.h:59
M680X_INS_ANDCC
@ M680X_INS_ANDCC
Definition: m680x.h:196
M680X_INS_DECA
@ M680X_INS_DECA
Definition: m680x.h:297
M680X_INS_ASLD
@ M680X_INS_ASLD
or LSLD
Definition: m680x.h:202
M680X_INS_ORA
@ M680X_INS_ORA
Definition: m680x.h:412
M680X_INS_ETBL
@ M680X_INS_ETBL
Definition: m680x.h:325
M680X_INS_ANDB
@ M680X_INS_ANDB
Definition: m680x.h:195
M680X_INS_TEST
@ M680X_INS_TEST
Definition: m680x.h:506
M680X_INS_TBNE
@ M680X_INS_TBNE
Definition: m680x.h:505
cs_m680x
struct cs_m680x cs_m680x
The M680X instruction and it's operands.
M680X_INS_LBNE
@ M680X_INS_LBNE
Definition: m680x.h:356
M680X_INS_CMPA
@ M680X_INS_CMPA
Definition: m680x.h:265
M680X_INS_RTS
@ M680X_INS_RTS
Definition: m680x.h:458
M680X_INS_BSET
@ M680X_INS_BSET
Definition: m680x.h:243
M680X_INS_DEC
@ M680X_INS_DEC
Definition: m680x.h:296
m680x_op_idx::base_reg
m680x_reg base_reg
Definition: m680x.h:82
M680X_INS_BEQ
@ M680X_INS_BEQ
Definition: m680x.h:213
M680X_INS_ADCA
@ M680X_INS_ADCA
Definition: m680x.h:178
cs_m680x_op::rel
m680x_op_rel rel
Relative address. operand (Bcc/LBcc)
Definition: m680x.h:120
cs_m680x_op::const_val
uint8_t const_val
constant value (bit index, page nr.)
Definition: m680x.h:123
M680X_INS_STF
@ M680X_INS_STF
Definition: m680x.h:478
M680X_INS_EORR
@ M680X_INS_EORR
Definition: m680x.h:324
M680X_INS_ROR
@ M680X_INS_ROR
Definition: m680x.h:449
M680X_INS_BIL
@ M680X_INS_BIL
Definition: m680x.h:223
M680X_INS_BPL
@ M680X_INS_BPL
Definition: m680x.h:238
M680X_INS_DEY
@ M680X_INS_DEY
Definition: m680x.h:306
m680x_group_type
m680x_group_type
Group of M680X instructions.
Definition: m680x.h:133
M680X_INS_SWI3
@ M680X_INS_SWI3
Definition: m680x.h:497
M680X_INS_LSLX
@ M680X_INS_LSLX
Definition: m680x.h:387
M680X_REG_CC
@ M680X_REG_CC
M6800/1/2/3/9, M6301/9.
Definition: m680x.h:32
m680x_op_ext::address
uint16_t address
The absolute address.
Definition: m680x.h:109
M680X_INS_CLV
@ M680X_INS_CLV
M6800/1/2/3.
Definition: m680x.h:263
M680X_INS_ASRX
@ M680X_INS_ASRX
Definition: m680x.h:207
M680X_INS_LDY
@ M680X_INS_LDY
Definition: m680x.h:378
M680X_INS_LSRA
@ M680X_INS_LSRA
Definition: m680x.h:389
M680X_REG_B
@ M680X_REG_B
M6800/1/2/3/9, HD6301/9.
Definition: m680x.h:24
M680X_INS_FDIV
@ M680X_INS_FDIV
Definition: m680x.h:327
m680x_op_idx
Instruction's operand referring to indexed addressing.
Definition: m680x.h:81
M680X_INS_PULH
@ M680X_INS_PULH
Definition: m680x.h:434
M680X_INS_LDW
@ M680X_INS_LDW
Definition: m680x.h:376
M680X_INS_CMPF
@ M680X_INS_CMPF
Definition: m680x.h:269
M680X_INS_SWI2
@ M680X_INS_SWI2
Definition: m680x.h:496
M680X_INS_ILLGL
@ M680X_INS_ILLGL
Definition: m680x.h:332
M680X_INS_WAI
@ M680X_INS_WAI
M6800/1/2/3.
Definition: m680x.h:524
M680X_INS_EDIVS
@ M680X_INS_EDIVS
Definition: m680x.h:311
cs_m680x_op::type
m680x_op_type type
Definition: m680x.h:115
M680X_OP_REGISTER
@ M680X_OP_REGISTER
= Register operand.
Definition: m680x.h:57
M680X_INS_BHCC
@ M680X_INS_BHCC
Definition: m680x.h:217
M680X_INS_MINM
@ M680X_INS_MINM
Definition: m680x.h:398
M680X_INS_IDIVS
@ M680X_INS_IDIVS
Definition: m680x.h:331
M680X_INS_SLP
@ M680X_INS_SLP
Definition: m680x.h:470
M680X_INS_IDIV
@ M680X_INS_IDIV
Definition: m680x.h:330
M680X_INS_CMPU
@ M680X_INS_CMPU
Definition: m680x.h:272
M680X_INS_TSTB
@ M680X_INS_TSTB
Definition: m680x.h:513
M680X_INS_BNE
@ M680X_INS_BNE
Definition: m680x.h:236
M680X_INS_ASL
@ M680X_INS_ASL
Definition: m680x.h:199
M680X_INS_DECD
@ M680X_INS_DECD
Definition: m680x.h:299
int8_t
signed char int8_t
Definition: stdint-msvc2008.h:75
M680X_INS_DECF
@ M680X_INS_DECF
Definition: m680x.h:301
cs_m680x_op
Instruction operand.
Definition: m680x.h:114
M680X_REG_INVALID
@ M680X_REG_INVALID
Definition: m680x.h:21
M680X_REG_TMP3
@ M680X_REG_TMP3
CPU12.
Definition: m680x.h:49
M680X_INS_SBC
@ M680X_INS_SBC
Definition: m680x.h:460
M680X_INS_LBSR
@ M680X_INS_LBSR
Definition: m680x.h:360
m680x_op_ext
struct m680x_op_ext m680x_op_ext
Instruction's operand referring to extended addressing.
M680X_INS_DECE
@ M680X_INS_DECE
Definition: m680x.h:300
M680X_INS_CLC
@ M680X_INS_CLC
M6800/1/2/3.
Definition: m680x.h:252
M680X_INS_BIOR
@ M680X_INS_BIOR
Definition: m680x.h:224
M680X_INS_LSR
@ M680X_INS_LSR
Definition: m680x.h:388
M680X_INS_REVW
@ M680X_INS_REVW
Definition: m680x.h:442
M680X_INS_REV
@ M680X_INS_REV
Definition: m680x.h:441
M680X_INS_JSR
@ M680X_INS_JSR
Definition: m680x.h:345
M680X_INS_RORX
@ M680X_INS_RORX
Definition: m680x.h:454
M680X_INS_LBHI
@ M680X_INS_LBHI
Definition: m680x.h:351
M680X_GRP_RET
@ M680X_GRP_RET
= CS_GRP_RET
Definition: m680x.h:141
M680X_INS_SWI
@ M680X_INS_SWI
Definition: m680x.h:495
M680X_INS_LBEQ
@ M680X_INS_LBEQ
Definition: m680x.h:348
int32_t
signed int int32_t
Definition: stdint-msvc2008.h:77
M680X_INS_CPS
@ M680X_INS_CPS
Definition: m680x.h:286
M680X_INS_MUL
@ M680X_INS_MUL
Definition: m680x.h:402
M680X_INS_PSHY
@ M680X_INS_PSHY
Definition: m680x.h:429
M680X_INS_SUBF
@ M680X_INS_SUBF
Definition: m680x.h:492
M680X_INS_PULS
@ M680X_INS_PULS
Definition: m680x.h:435
M680X_INS_CLR
@ M680X_INS_CLR
Definition: m680x.h:254
M680X_INS_LDAA
@ M680X_INS_LDAA
M6800/1/2/3.
Definition: m680x.h:364
M680X_INS_CLRB
@ M680X_INS_CLRB
Definition: m680x.h:256
M680X_INS_RORB
@ M680X_INS_RORB
Definition: m680x.h:451
M680X_INS_CBA
@ M680X_INS_CBA
M6800/1/2/3.
Definition: m680x.h:248
M680X_OP_INVALID
@ M680X_OP_INVALID
= CS_OP_INVALID (Uninitialized).
Definition: m680x.h:56
M680X_INS_CBEQA
@ M680X_INS_CBEQA
Definition: m680x.h:250
M680X_INS_BGND
@ M680X_INS_BGND
Definition: m680x.h:215
M680X_INS_LBRN
@ M680X_INS_LBRN
Definition: m680x.h:359
M680X_INS_STB
@ M680X_INS_STB
Definition: m680x.h:474
M680X_INS_TSTW
@ M680X_INS_TSTW
Definition: m680x.h:517
M680X_INS_DEX
@ M680X_INS_DEX
M6800/1/2/3.
Definition: m680x.h:305
M680X_INS_LSLB
@ M680X_INS_LSLB
Definition: m680x.h:385
M680X_INS_CMPR
@ M680X_INS_CMPR
Definition: m680x.h:270
M680X_INS_ADDA
@ M680X_INS_ADDA
Definition: m680x.h:183
M680X_INS_PULY
@ M680X_INS_PULY
Definition: m680x.h:440
M680X_INS_COMW
@ M680X_INS_COMW
Definition: m680x.h:282
M680X_INS_EMAXM
@ M680X_INS_EMAXM
Definition: m680x.h:315
M680X_INS_SBCR
@ M680X_INS_SBCR
Definition: m680x.h:464
M680X_INS_LDF
@ M680X_INS_LDF
Definition: m680x.h:370
M680X_REG_ENDING
@ M680X_REG_ENDING
<– mark the end of the list of registers
Definition: m680x.h:51
M680X_INS_SUBE
@ M680X_INS_SUBE
Definition: m680x.h:491
M680X_INS_BMS
@ M680X_INS_BMS
Definition: m680x.h:235
M680X_INS_CLRH
@ M680X_INS_CLRH
Definition: m680x.h:260
M680X_INS_BGE
@ M680X_INS_BGE
Definition: m680x.h:214
M680X_INS_ADDB
@ M680X_INS_ADDB
Definition: m680x.h:184
M680X_INS_COMD
@ M680X_INS_COMD
Definition: m680x.h:279
M680X_INS_DECW
@ M680X_INS_DECW
Definition: m680x.h:302
M680X_INS_TBA
@ M680X_INS_TBA
M6800/1/2/3.
Definition: m680x.h:502
M680X_INS_INX
@ M680X_INS_INX
M6800/1/2/3.
Definition: m680x.h:342
M680X_INS_ROLW
@ M680X_INS_ROLW
Definition: m680x.h:447
M680X_REG_H
@ M680X_REG_H
M6808.
Definition: m680x.h:37
M680X_INS_DIV
@ M680X_INS_DIV
Definition: m680x.h:307
M680X_INS_PSHUW
@ M680X_INS_PSHUW
Definition: m680x.h:427


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:00:30