1 #ifndef CAPSTONE_M68K_H
2 #define CAPSTONE_M68K_H
14 #pragma warning(disable:4201)
17 #define M68K_OPERAND_COUNT 4
struct m68k_op_mem m68k_op_mem
#define M68K_OPERAND_COUNT
m68k_cpu_size
Operation size of the CPU instructions.
@ M68K_CPU_SIZE_LONG
4 bytes in size
@ M68K_CPU_SIZE_WORD
2 bytes in size
@ M68K_CPU_SIZE_BYTE
1 byte in size
@ M68K_CPU_SIZE_NONE
unsized or unspecified
m68k_address_mode
M68K Addressing Modes.
@ M68K_AM_NONE
No address mode.
@ M68K_AM_MEMI_POST_INDEX
Memory indirect - Postindex.
@ M68K_AM_PC_MEMI_PRE_INDEX
Program Counter Memory Indirect - Preindexed.
@ M68K_AM_REG_DIRECT_ADDR
Register Direct - Address.
@ M68K_AM_REGI_ADDR
Register Indirect - Address.
@ M68K_AM_IMMEDIATE
Immediate value.
@ M68K_AM_REGI_ADDR_POST_INC
Register Indirect - Address with Postincrement.
@ M68K_AM_ABSOLUTE_DATA_SHORT
Absolute Data Addressing - Short.
@ M68K_AM_AREGI_INDEX_8_BIT_DISP
Address Register Indirect With Index- 8-bit displacement.
@ M68K_AM_PCI_INDEX_BASE_DISP
Program Counter Indirect with Index - with Base Displacement.
@ M68K_AM_PCI_DISP
Program Counter Indirect - with Displacement.
@ M68K_AM_REGI_ADDR_PRE_DEC
Register Indirect - Address with Predecrement.
@ M68K_AM_MEMI_PRE_INDEX
Memory indirect - Preindex.
@ M68K_AM_ABSOLUTE_DATA_LONG
Absolute Data Addressing - Long.
@ M68K_AM_PC_MEMI_POST_INDEX
Program Counter Memory Indirect - Postindexed.
@ M68K_AM_REG_DIRECT_DATA
Register Direct - Data.
@ M68K_AM_AREGI_INDEX_BASE_DISP
Address Register Indirect With Index- Base displacement.
@ M68K_AM_BRANCH_DISPLACEMENT
Address as displacement from (PC+2) used by branches.
@ M68K_AM_PCI_INDEX_8_BIT_DISP
Program Counter Indirect with Index - with 8-Bit Displacement.
@ M68K_AM_REGI_ADDR_DISP
Register Indirect - Address with Displacement.
m68k_size_type
Type of size that is being used for the current instruction.
struct m68k_op_size m68k_op_size
Operation size of the current instruction (NOT the actually size of instruction)
m68k_group_type
Group of M68K instructions.
@ M68K_GRP_RET
= CS_GRP_RET
@ M68K_GRP_INVALID
CS_GRUP_INVALID.
@ M68K_GRP_IRET
= CS_GRP_IRET
@ M68K_GRP_JUMP
= CS_GRP_JUMP
@ M68K_GRP_BRANCH_RELATIVE
= CS_GRP_BRANCH_RELATIVE
m68k_op_type
Operand type for instruction's operands.
@ M68K_OP_REG_PAIR
Register pair in the same op (upper 4 bits for first reg, lower for second)
@ M68K_OP_BR_DISP
Branch displacement.
@ M68K_OP_IMM
= CS_OP_IMM (Immediate operand).
@ M68K_OP_FP_SINGLE
single precision Floating-Point operand
@ M68K_OP_FP_DOUBLE
double precision Floating-Point operand
@ M68K_OP_REG_BITS
Register bits move.
@ M68K_OP_REG
= CS_OP_REG (Register operand).
@ M68K_OP_INVALID
= CS_OP_INVALID (Uninitialized).
@ M68K_OP_MEM
= CS_OP_MEM (Memory operand).
m68k_fpu_size
Operation size of the FPU instructions (Notice that FPU instruction can also use CPU sizes if needed)
@ M68K_FPU_SIZE_SINGLE
4 byte in size (single float)
@ M68K_FPU_SIZE_NONE
unsized like fsave/frestore
@ M68K_FPU_SIZE_DOUBLE
8 byte in size (double)
@ M68K_FPU_SIZE_EXTENDED
12 byte in size (extended real format)
struct cs_m68k_op_reg_pair cs_m68k_op_reg_pair
Register pair in one operand.
m68k_insn
M68K instruction.
m68k_reg
M68K registers and special registers.
m68k_op_br_disp_size
Operand type for instruction's operands.
@ M68K_OP_BR_DISP_SIZE_LONG
signed 32-bit displacement
@ M68K_OP_BR_DISP_SIZE_BYTE
signed 8-bit displacement
@ M68K_OP_BR_DISP_SIZE_WORD
signed 16-bit displacement
@ M68K_OP_BR_DISP_SIZE_INVALID
= CS_OP_INVALID (Uninitialized).
struct m68k_op_br_disp m68k_op_br_disp
struct cs_m68k cs_m68k
The M68K instruction and it's operands.
struct cs_m68k_op cs_m68k_op
Instruction operand.
Register pair in one operand.
m68k_op_br_disp br_disp
data when operand is a branch displacement
uint32_t register_bits
register bits for movem etc. (always in d0-d7, a0-a7, fp0 - fp7 order)
m68k_op_mem mem
data when operand is targeting memory
m68k_reg reg
register value for REG operand
m68k_address_mode address_mode
M68K addressing mode for this op.
uint64_t imm
immediate value for IMM operand
cs_m68k_op_reg_pair reg_pair
register pair in one operand
The M68K instruction and it's operands.
uint8_t op_count
number of operands for the instruction
m68k_op_size op_size
size of data operand works on in bytes (.b, .w, .l, etc)
int32_t disp
displacement value
uint8_t disp_size
Size from m68k_op_br_disp_size type above.
uint8_t width
used for bf* instructions
uint8_t offset
used for bf* instructions
m68k_reg index_reg
index register (or M68K_REG_INVALID if irrelevant)
uint8_t bitfield
set to true if the two values below should be used
int16_t disp
displacement value
uint8_t scale
scale for index register
uint32_t in_disp
indirect displacement
m68k_reg in_base_reg
indirect base register (or M68K_REG_INVALID if irrelevant)
m68k_reg base_reg
base register (or M68K_REG_INVALID if irrelevant)
uint32_t out_disp
other displacement
uint8_t index_size
0 = w, 1 = l
Operation size of the current instruction (NOT the actually size of instruction)