Rizin
unix-like reverse engineering framework and cli tools
arm.h File Reference
#include "platform.h"

Go to the source code of this file.

Classes

struct  arm_op_mem
 
struct  cs_arm_op
 Instruction operand. More...
 
struct  cs_arm
 Instruction structure. More...
 

Typedefs

typedef enum arm_shifter arm_shifter
 ARM shift type. More...
 
typedef enum arm_cc arm_cc
 ARM condition code. More...
 
typedef enum arm_sysreg arm_sysreg
 
typedef enum arm_mem_barrier arm_mem_barrier
 
typedef enum arm_op_type arm_op_type
 Operand type for instruction's operands. More...
 
typedef enum arm_setend_type arm_setend_type
 Operand type for SETEND instruction. More...
 
typedef enum arm_cpsmode_type arm_cpsmode_type
 
typedef enum arm_cpsflag_type arm_cpsflag_type
 Operand type for SETEND instruction. More...
 
typedef enum arm_vectordata_type arm_vectordata_type
 Data type for elements of vector instructions. More...
 
typedef enum arm_reg arm_reg
 ARM registers. More...
 
typedef struct arm_op_mem arm_op_mem
 
typedef struct cs_arm_op cs_arm_op
 Instruction operand. More...
 
typedef struct cs_arm cs_arm
 Instruction structure. More...
 
typedef enum arm_insn arm_insn
 ARM instruction. More...
 
typedef enum arm_insn_group arm_insn_group
 Group of ARM instructions. More...
 

Enumerations

enum  arm_shifter {
  ARM_SFT_INVALID = 0 , ARM_SFT_ASR , ARM_SFT_LSL , ARM_SFT_LSR ,
  ARM_SFT_ROR , ARM_SFT_RRX , ARM_SFT_ASR_REG , ARM_SFT_LSL_REG ,
  ARM_SFT_LSR_REG , ARM_SFT_ROR_REG , ARM_SFT_RRX_REG
}
 ARM shift type. More...
 
enum  arm_cc {
  ARM_CC_INVALID = 0 , ARM_CC_EQ , ARM_CC_NE , ARM_CC_HS ,
  ARM_CC_LO , ARM_CC_MI , ARM_CC_PL , ARM_CC_VS ,
  ARM_CC_VC , ARM_CC_HI , ARM_CC_LS , ARM_CC_GE ,
  ARM_CC_LT , ARM_CC_GT , ARM_CC_LE , ARM_CC_AL
}
 ARM condition code. More...
 
enum  arm_sysreg {
  ARM_SYSREG_INVALID = 0 , ARM_SYSREG_SPSR_C = 1 , ARM_SYSREG_SPSR_X = 2 , ARM_SYSREG_SPSR_S = 4 ,
  ARM_SYSREG_SPSR_F = 8 , ARM_SYSREG_CPSR_C = 16 , ARM_SYSREG_CPSR_X = 32 , ARM_SYSREG_CPSR_S = 64 ,
  ARM_SYSREG_CPSR_F = 128 , ARM_SYSREG_APSR = 256 , ARM_SYSREG_APSR_G , ARM_SYSREG_APSR_NZCVQ ,
  ARM_SYSREG_APSR_NZCVQG , ARM_SYSREG_IAPSR , ARM_SYSREG_IAPSR_G , ARM_SYSREG_IAPSR_NZCVQG ,
  ARM_SYSREG_IAPSR_NZCVQ , ARM_SYSREG_EAPSR , ARM_SYSREG_EAPSR_G , ARM_SYSREG_EAPSR_NZCVQG ,
  ARM_SYSREG_EAPSR_NZCVQ , ARM_SYSREG_XPSR , ARM_SYSREG_XPSR_G , ARM_SYSREG_XPSR_NZCVQG ,
  ARM_SYSREG_XPSR_NZCVQ , ARM_SYSREG_IPSR , ARM_SYSREG_EPSR , ARM_SYSREG_IEPSR ,
  ARM_SYSREG_MSP , ARM_SYSREG_PSP , ARM_SYSREG_PRIMASK , ARM_SYSREG_BASEPRI ,
  ARM_SYSREG_BASEPRI_MAX , ARM_SYSREG_FAULTMASK , ARM_SYSREG_CONTROL , ARM_SYSREG_R8_USR ,
  ARM_SYSREG_R9_USR , ARM_SYSREG_R10_USR , ARM_SYSREG_R11_USR , ARM_SYSREG_R12_USR ,
  ARM_SYSREG_SP_USR , ARM_SYSREG_LR_USR , ARM_SYSREG_R8_FIQ , ARM_SYSREG_R9_FIQ ,
  ARM_SYSREG_R10_FIQ , ARM_SYSREG_R11_FIQ , ARM_SYSREG_R12_FIQ , ARM_SYSREG_SP_FIQ ,
  ARM_SYSREG_LR_FIQ , ARM_SYSREG_LR_IRQ , ARM_SYSREG_SP_IRQ , ARM_SYSREG_LR_SVC ,
  ARM_SYSREG_SP_SVC , ARM_SYSREG_LR_ABT , ARM_SYSREG_SP_ABT , ARM_SYSREG_LR_UND ,
  ARM_SYSREG_SP_UND , ARM_SYSREG_LR_MON , ARM_SYSREG_SP_MON , ARM_SYSREG_ELR_HYP ,
  ARM_SYSREG_SP_HYP , ARM_SYSREG_SPSR_FIQ , ARM_SYSREG_SPSR_IRQ , ARM_SYSREG_SPSR_SVC ,
  ARM_SYSREG_SPSR_ABT , ARM_SYSREG_SPSR_UND , ARM_SYSREG_SPSR_MON , ARM_SYSREG_SPSR_HYP
}
 
enum  arm_mem_barrier {
  ARM_MB_INVALID = 0 , ARM_MB_RESERVED_0 , ARM_MB_OSHLD , ARM_MB_OSHST ,
  ARM_MB_OSH , ARM_MB_RESERVED_4 , ARM_MB_NSHLD , ARM_MB_NSHST ,
  ARM_MB_NSH , ARM_MB_RESERVED_8 , ARM_MB_ISHLD , ARM_MB_ISHST ,
  ARM_MB_ISH , ARM_MB_RESERVED_12 , ARM_MB_LD , ARM_MB_ST ,
  ARM_MB_SY
}
 
enum  arm_op_type {
  ARM_OP_INVALID = 0 , ARM_OP_REG , ARM_OP_IMM , ARM_OP_MEM ,
  ARM_OP_FP , ARM_OP_CIMM = 64 , ARM_OP_PIMM , ARM_OP_SETEND ,
  ARM_OP_SYSREG
}
 Operand type for instruction's operands. More...
 
enum  arm_setend_type { ARM_SETEND_INVALID = 0 , ARM_SETEND_BE , ARM_SETEND_LE }
 Operand type for SETEND instruction. More...
 
enum  arm_cpsmode_type { ARM_CPSMODE_INVALID = 0 , ARM_CPSMODE_IE = 2 , ARM_CPSMODE_ID = 3 }
 
enum  arm_cpsflag_type {
  ARM_CPSFLAG_INVALID = 0 , ARM_CPSFLAG_F = 1 , ARM_CPSFLAG_I = 2 , ARM_CPSFLAG_A = 4 ,
  ARM_CPSFLAG_NONE = 16
}
 Operand type for SETEND instruction. More...
 
enum  arm_vectordata_type {
  ARM_VECTORDATA_INVALID = 0 , ARM_VECTORDATA_I8 , ARM_VECTORDATA_I16 , ARM_VECTORDATA_I32 ,
  ARM_VECTORDATA_I64 , ARM_VECTORDATA_S8 , ARM_VECTORDATA_S16 , ARM_VECTORDATA_S32 ,
  ARM_VECTORDATA_S64 , ARM_VECTORDATA_U8 , ARM_VECTORDATA_U16 , ARM_VECTORDATA_U32 ,
  ARM_VECTORDATA_U64 , ARM_VECTORDATA_P8 , ARM_VECTORDATA_F32 , ARM_VECTORDATA_F64 ,
  ARM_VECTORDATA_F16F64 , ARM_VECTORDATA_F64F16 , ARM_VECTORDATA_F32F16 , ARM_VECTORDATA_F16F32 ,
  ARM_VECTORDATA_F64F32 , ARM_VECTORDATA_F32F64 , ARM_VECTORDATA_S32F32 , ARM_VECTORDATA_U32F32 ,
  ARM_VECTORDATA_F32S32 , ARM_VECTORDATA_F32U32 , ARM_VECTORDATA_F64S16 , ARM_VECTORDATA_F32S16 ,
  ARM_VECTORDATA_F64S32 , ARM_VECTORDATA_S16F64 , ARM_VECTORDATA_S16F32 , ARM_VECTORDATA_S32F64 ,
  ARM_VECTORDATA_U16F64 , ARM_VECTORDATA_U16F32 , ARM_VECTORDATA_U32F64 , ARM_VECTORDATA_F64U16 ,
  ARM_VECTORDATA_F32U16 , ARM_VECTORDATA_F64U32
}
 Data type for elements of vector instructions. More...
 
enum  arm_reg {
  ARM_REG_INVALID = 0 , ARM_REG_APSR , ARM_REG_APSR_NZCV , ARM_REG_CPSR ,
  ARM_REG_FPEXC , ARM_REG_FPINST , ARM_REG_FPSCR , ARM_REG_FPSCR_NZCV ,
  ARM_REG_FPSID , ARM_REG_ITSTATE , ARM_REG_LR , ARM_REG_PC ,
  ARM_REG_SP , ARM_REG_SPSR , ARM_REG_D0 , ARM_REG_D1 ,
  ARM_REG_D2 , ARM_REG_D3 , ARM_REG_D4 , ARM_REG_D5 ,
  ARM_REG_D6 , ARM_REG_D7 , ARM_REG_D8 , ARM_REG_D9 ,
  ARM_REG_D10 , ARM_REG_D11 , ARM_REG_D12 , ARM_REG_D13 ,
  ARM_REG_D14 , ARM_REG_D15 , ARM_REG_D16 , ARM_REG_D17 ,
  ARM_REG_D18 , ARM_REG_D19 , ARM_REG_D20 , ARM_REG_D21 ,
  ARM_REG_D22 , ARM_REG_D23 , ARM_REG_D24 , ARM_REG_D25 ,
  ARM_REG_D26 , ARM_REG_D27 , ARM_REG_D28 , ARM_REG_D29 ,
  ARM_REG_D30 , ARM_REG_D31 , ARM_REG_FPINST2 , ARM_REG_MVFR0 ,
  ARM_REG_MVFR1 , ARM_REG_MVFR2 , ARM_REG_Q0 , ARM_REG_Q1 ,
  ARM_REG_Q2 , ARM_REG_Q3 , ARM_REG_Q4 , ARM_REG_Q5 ,
  ARM_REG_Q6 , ARM_REG_Q7 , ARM_REG_Q8 , ARM_REG_Q9 ,
  ARM_REG_Q10 , ARM_REG_Q11 , ARM_REG_Q12 , ARM_REG_Q13 ,
  ARM_REG_Q14 , ARM_REG_Q15 , ARM_REG_R0 , ARM_REG_R1 ,
  ARM_REG_R2 , ARM_REG_R3 , ARM_REG_R4 , ARM_REG_R5 ,
  ARM_REG_R6 , ARM_REG_R7 , ARM_REG_R8 , ARM_REG_R9 ,
  ARM_REG_R10 , ARM_REG_R11 , ARM_REG_R12 , ARM_REG_S0 ,
  ARM_REG_S1 , ARM_REG_S2 , ARM_REG_S3 , ARM_REG_S4 ,
  ARM_REG_S5 , ARM_REG_S6 , ARM_REG_S7 , ARM_REG_S8 ,
  ARM_REG_S9 , ARM_REG_S10 , ARM_REG_S11 , ARM_REG_S12 ,
  ARM_REG_S13 , ARM_REG_S14 , ARM_REG_S15 , ARM_REG_S16 ,
  ARM_REG_S17 , ARM_REG_S18 , ARM_REG_S19 , ARM_REG_S20 ,
  ARM_REG_S21 , ARM_REG_S22 , ARM_REG_S23 , ARM_REG_S24 ,
  ARM_REG_S25 , ARM_REG_S26 , ARM_REG_S27 , ARM_REG_S28 ,
  ARM_REG_S29 , ARM_REG_S30 , ARM_REG_S31 , ARM_REG_ENDING ,
  ARM_REG_R13 = ARM_REG_SP , ARM_REG_R14 = ARM_REG_LR , ARM_REG_R15 = ARM_REG_PC , ARM_REG_SB = ARM_REG_R9 ,
  ARM_REG_SL = ARM_REG_R10 , ARM_REG_FP = ARM_REG_R11 , ARM_REG_IP = ARM_REG_R12
}
 ARM registers. More...
 
enum  arm_insn {
  ARM_INS_INVALID = 0 , ARM_INS_ADC , ARM_INS_ADD , ARM_INS_ADR ,
  ARM_INS_AESD , ARM_INS_AESE , ARM_INS_AESIMC , ARM_INS_AESMC ,
  ARM_INS_AND , ARM_INS_BFC , ARM_INS_BFI , ARM_INS_BIC ,
  ARM_INS_BKPT , ARM_INS_BL , ARM_INS_BLX , ARM_INS_BX ,
  ARM_INS_BXJ , ARM_INS_B , ARM_INS_CDP , ARM_INS_CDP2 ,
  ARM_INS_CLREX , ARM_INS_CLZ , ARM_INS_CMN , ARM_INS_CMP ,
  ARM_INS_CPS , ARM_INS_CRC32B , ARM_INS_CRC32CB , ARM_INS_CRC32CH ,
  ARM_INS_CRC32CW , ARM_INS_CRC32H , ARM_INS_CRC32W , ARM_INS_DBG ,
  ARM_INS_DMB , ARM_INS_DSB , ARM_INS_EOR , ARM_INS_ERET ,
  ARM_INS_VMOV , ARM_INS_FLDMDBX , ARM_INS_FLDMIAX , ARM_INS_VMRS ,
  ARM_INS_FSTMDBX , ARM_INS_FSTMIAX , ARM_INS_HINT , ARM_INS_HLT ,
  ARM_INS_HVC , ARM_INS_ISB , ARM_INS_LDA , ARM_INS_LDAB ,
  ARM_INS_LDAEX , ARM_INS_LDAEXB , ARM_INS_LDAEXD , ARM_INS_LDAEXH ,
  ARM_INS_LDAH , ARM_INS_LDC2L , ARM_INS_LDC2 , ARM_INS_LDCL ,
  ARM_INS_LDC , ARM_INS_LDMDA , ARM_INS_LDMDB , ARM_INS_LDM ,
  ARM_INS_LDMIB , ARM_INS_LDRBT , ARM_INS_LDRB , ARM_INS_LDRD ,
  ARM_INS_LDREX , ARM_INS_LDREXB , ARM_INS_LDREXD , ARM_INS_LDREXH ,
  ARM_INS_LDRH , ARM_INS_LDRHT , ARM_INS_LDRSB , ARM_INS_LDRSBT ,
  ARM_INS_LDRSH , ARM_INS_LDRSHT , ARM_INS_LDRT , ARM_INS_LDR ,
  ARM_INS_MCR , ARM_INS_MCR2 , ARM_INS_MCRR , ARM_INS_MCRR2 ,
  ARM_INS_MLA , ARM_INS_MLS , ARM_INS_MOV , ARM_INS_MOVT ,
  ARM_INS_MOVW , ARM_INS_MRC , ARM_INS_MRC2 , ARM_INS_MRRC ,
  ARM_INS_MRRC2 , ARM_INS_MRS , ARM_INS_MSR , ARM_INS_MUL ,
  ARM_INS_MVN , ARM_INS_ORR , ARM_INS_PKHBT , ARM_INS_PKHTB ,
  ARM_INS_PLDW , ARM_INS_PLD , ARM_INS_PLI , ARM_INS_QADD ,
  ARM_INS_QADD16 , ARM_INS_QADD8 , ARM_INS_QASX , ARM_INS_QDADD ,
  ARM_INS_QDSUB , ARM_INS_QSAX , ARM_INS_QSUB , ARM_INS_QSUB16 ,
  ARM_INS_QSUB8 , ARM_INS_RBIT , ARM_INS_REV , ARM_INS_REV16 ,
  ARM_INS_REVSH , ARM_INS_RFEDA , ARM_INS_RFEDB , ARM_INS_RFEIA ,
  ARM_INS_RFEIB , ARM_INS_RSB , ARM_INS_RSC , ARM_INS_SADD16 ,
  ARM_INS_SADD8 , ARM_INS_SASX , ARM_INS_SBC , ARM_INS_SBFX ,
  ARM_INS_SDIV , ARM_INS_SEL , ARM_INS_SETEND , ARM_INS_SHA1C ,
  ARM_INS_SHA1H , ARM_INS_SHA1M , ARM_INS_SHA1P , ARM_INS_SHA1SU0 ,
  ARM_INS_SHA1SU1 , ARM_INS_SHA256H , ARM_INS_SHA256H2 , ARM_INS_SHA256SU0 ,
  ARM_INS_SHA256SU1 , ARM_INS_SHADD16 , ARM_INS_SHADD8 , ARM_INS_SHASX ,
  ARM_INS_SHSAX , ARM_INS_SHSUB16 , ARM_INS_SHSUB8 , ARM_INS_SMC ,
  ARM_INS_SMLABB , ARM_INS_SMLABT , ARM_INS_SMLAD , ARM_INS_SMLADX ,
  ARM_INS_SMLAL , ARM_INS_SMLALBB , ARM_INS_SMLALBT , ARM_INS_SMLALD ,
  ARM_INS_SMLALDX , ARM_INS_SMLALTB , ARM_INS_SMLALTT , ARM_INS_SMLATB ,
  ARM_INS_SMLATT , ARM_INS_SMLAWB , ARM_INS_SMLAWT , ARM_INS_SMLSD ,
  ARM_INS_SMLSDX , ARM_INS_SMLSLD , ARM_INS_SMLSLDX , ARM_INS_SMMLA ,
  ARM_INS_SMMLAR , ARM_INS_SMMLS , ARM_INS_SMMLSR , ARM_INS_SMMUL ,
  ARM_INS_SMMULR , ARM_INS_SMUAD , ARM_INS_SMUADX , ARM_INS_SMULBB ,
  ARM_INS_SMULBT , ARM_INS_SMULL , ARM_INS_SMULTB , ARM_INS_SMULTT ,
  ARM_INS_SMULWB , ARM_INS_SMULWT , ARM_INS_SMUSD , ARM_INS_SMUSDX ,
  ARM_INS_SRSDA , ARM_INS_SRSDB , ARM_INS_SRSIA , ARM_INS_SRSIB ,
  ARM_INS_SSAT , ARM_INS_SSAT16 , ARM_INS_SSAX , ARM_INS_SSUB16 ,
  ARM_INS_SSUB8 , ARM_INS_STC2L , ARM_INS_STC2 , ARM_INS_STCL ,
  ARM_INS_STC , ARM_INS_STL , ARM_INS_STLB , ARM_INS_STLEX ,
  ARM_INS_STLEXB , ARM_INS_STLEXD , ARM_INS_STLEXH , ARM_INS_STLH ,
  ARM_INS_STMDA , ARM_INS_STMDB , ARM_INS_STM , ARM_INS_STMIB ,
  ARM_INS_STRBT , ARM_INS_STRB , ARM_INS_STRD , ARM_INS_STREX ,
  ARM_INS_STREXB , ARM_INS_STREXD , ARM_INS_STREXH , ARM_INS_STRH ,
  ARM_INS_STRHT , ARM_INS_STRT , ARM_INS_STR , ARM_INS_SUB ,
  ARM_INS_SVC , ARM_INS_SWP , ARM_INS_SWPB , ARM_INS_SXTAB ,
  ARM_INS_SXTAB16 , ARM_INS_SXTAH , ARM_INS_SXTB , ARM_INS_SXTB16 ,
  ARM_INS_SXTH , ARM_INS_TEQ , ARM_INS_TRAP , ARM_INS_TST ,
  ARM_INS_UADD16 , ARM_INS_UADD8 , ARM_INS_UASX , ARM_INS_UBFX ,
  ARM_INS_UDF , ARM_INS_UDIV , ARM_INS_UHADD16 , ARM_INS_UHADD8 ,
  ARM_INS_UHASX , ARM_INS_UHSAX , ARM_INS_UHSUB16 , ARM_INS_UHSUB8 ,
  ARM_INS_UMAAL , ARM_INS_UMLAL , ARM_INS_UMULL , ARM_INS_UQADD16 ,
  ARM_INS_UQADD8 , ARM_INS_UQASX , ARM_INS_UQSAX , ARM_INS_UQSUB16 ,
  ARM_INS_UQSUB8 , ARM_INS_USAD8 , ARM_INS_USADA8 , ARM_INS_USAT ,
  ARM_INS_USAT16 , ARM_INS_USAX , ARM_INS_USUB16 , ARM_INS_USUB8 ,
  ARM_INS_UXTAB , ARM_INS_UXTAB16 , ARM_INS_UXTAH , ARM_INS_UXTB ,
  ARM_INS_UXTB16 , ARM_INS_UXTH , ARM_INS_VABAL , ARM_INS_VABA ,
  ARM_INS_VABDL , ARM_INS_VABD , ARM_INS_VABS , ARM_INS_VACGE ,
  ARM_INS_VACGT , ARM_INS_VADD , ARM_INS_VADDHN , ARM_INS_VADDL ,
  ARM_INS_VADDW , ARM_INS_VAND , ARM_INS_VBIC , ARM_INS_VBIF ,
  ARM_INS_VBIT , ARM_INS_VBSL , ARM_INS_VCEQ , ARM_INS_VCGE ,
  ARM_INS_VCGT , ARM_INS_VCLE , ARM_INS_VCLS , ARM_INS_VCLT ,
  ARM_INS_VCLZ , ARM_INS_VCMP , ARM_INS_VCMPE , ARM_INS_VCNT ,
  ARM_INS_VCVTA , ARM_INS_VCVTB , ARM_INS_VCVT , ARM_INS_VCVTM ,
  ARM_INS_VCVTN , ARM_INS_VCVTP , ARM_INS_VCVTT , ARM_INS_VDIV ,
  ARM_INS_VDUP , ARM_INS_VEOR , ARM_INS_VEXT , ARM_INS_VFMA ,
  ARM_INS_VFMS , ARM_INS_VFNMA , ARM_INS_VFNMS , ARM_INS_VHADD ,
  ARM_INS_VHSUB , ARM_INS_VLD1 , ARM_INS_VLD2 , ARM_INS_VLD3 ,
  ARM_INS_VLD4 , ARM_INS_VLDMDB , ARM_INS_VLDMIA , ARM_INS_VLDR ,
  ARM_INS_VMAXNM , ARM_INS_VMAX , ARM_INS_VMINNM , ARM_INS_VMIN ,
  ARM_INS_VMLA , ARM_INS_VMLAL , ARM_INS_VMLS , ARM_INS_VMLSL ,
  ARM_INS_VMOVL , ARM_INS_VMOVN , ARM_INS_VMSR , ARM_INS_VMUL ,
  ARM_INS_VMULL , ARM_INS_VMVN , ARM_INS_VNEG , ARM_INS_VNMLA ,
  ARM_INS_VNMLS , ARM_INS_VNMUL , ARM_INS_VORN , ARM_INS_VORR ,
  ARM_INS_VPADAL , ARM_INS_VPADDL , ARM_INS_VPADD , ARM_INS_VPMAX ,
  ARM_INS_VPMIN , ARM_INS_VQABS , ARM_INS_VQADD , ARM_INS_VQDMLAL ,
  ARM_INS_VQDMLSL , ARM_INS_VQDMULH , ARM_INS_VQDMULL , ARM_INS_VQMOVUN ,
  ARM_INS_VQMOVN , ARM_INS_VQNEG , ARM_INS_VQRDMULH , ARM_INS_VQRSHL ,
  ARM_INS_VQRSHRN , ARM_INS_VQRSHRUN , ARM_INS_VQSHL , ARM_INS_VQSHLU ,
  ARM_INS_VQSHRN , ARM_INS_VQSHRUN , ARM_INS_VQSUB , ARM_INS_VRADDHN ,
  ARM_INS_VRECPE , ARM_INS_VRECPS , ARM_INS_VREV16 , ARM_INS_VREV32 ,
  ARM_INS_VREV64 , ARM_INS_VRHADD , ARM_INS_VRINTA , ARM_INS_VRINTM ,
  ARM_INS_VRINTN , ARM_INS_VRINTP , ARM_INS_VRINTR , ARM_INS_VRINTX ,
  ARM_INS_VRINTZ , ARM_INS_VRSHL , ARM_INS_VRSHRN , ARM_INS_VRSHR ,
  ARM_INS_VRSQRTE , ARM_INS_VRSQRTS , ARM_INS_VRSRA , ARM_INS_VRSUBHN ,
  ARM_INS_VSELEQ , ARM_INS_VSELGE , ARM_INS_VSELGT , ARM_INS_VSELVS ,
  ARM_INS_VSHLL , ARM_INS_VSHL , ARM_INS_VSHRN , ARM_INS_VSHR ,
  ARM_INS_VSLI , ARM_INS_VSQRT , ARM_INS_VSRA , ARM_INS_VSRI ,
  ARM_INS_VST1 , ARM_INS_VST2 , ARM_INS_VST3 , ARM_INS_VST4 ,
  ARM_INS_VSTMDB , ARM_INS_VSTMIA , ARM_INS_VSTR , ARM_INS_VSUB ,
  ARM_INS_VSUBHN , ARM_INS_VSUBL , ARM_INS_VSUBW , ARM_INS_VSWP ,
  ARM_INS_VTBL , ARM_INS_VTBX , ARM_INS_VCVTR , ARM_INS_VTRN ,
  ARM_INS_VTST , ARM_INS_VUZP , ARM_INS_VZIP , ARM_INS_ADDW ,
  ARM_INS_ASR , ARM_INS_DCPS1 , ARM_INS_DCPS2 , ARM_INS_DCPS3 ,
  ARM_INS_IT , ARM_INS_LSL , ARM_INS_LSR , ARM_INS_ORN ,
  ARM_INS_ROR , ARM_INS_RRX , ARM_INS_SUBW , ARM_INS_TBB ,
  ARM_INS_TBH , ARM_INS_CBNZ , ARM_INS_CBZ , ARM_INS_POP ,
  ARM_INS_PUSH , ARM_INS_NOP , ARM_INS_YIELD , ARM_INS_WFE ,
  ARM_INS_WFI , ARM_INS_SEV , ARM_INS_SEVL , ARM_INS_VPUSH ,
  ARM_INS_VPOP , ARM_INS_ENDING
}
 ARM instruction. More...
 
enum  arm_insn_group {
  ARM_GRP_INVALID = 0 , ARM_GRP_JUMP , ARM_GRP_CALL , ARM_GRP_INT = 4 ,
  ARM_GRP_PRIVILEGE = 6 , ARM_GRP_BRANCH_RELATIVE , ARM_GRP_CRYPTO = 128 , ARM_GRP_DATABARRIER ,
  ARM_GRP_DIVIDE , ARM_GRP_FPARMV8 , ARM_GRP_MULTPRO , ARM_GRP_NEON ,
  ARM_GRP_T2EXTRACTPACK , ARM_GRP_THUMB2DSP , ARM_GRP_TRUSTZONE , ARM_GRP_V4T ,
  ARM_GRP_V5T , ARM_GRP_V5TE , ARM_GRP_V6 , ARM_GRP_V6T2 ,
  ARM_GRP_V7 , ARM_GRP_V8 , ARM_GRP_VFP2 , ARM_GRP_VFP3 ,
  ARM_GRP_VFP4 , ARM_GRP_ARM , ARM_GRP_MCLASS , ARM_GRP_NOTMCLASS ,
  ARM_GRP_THUMB , ARM_GRP_THUMB1ONLY , ARM_GRP_THUMB2 , ARM_GRP_PREV8 ,
  ARM_GRP_FPVMLX , ARM_GRP_MULOPS , ARM_GRP_CRC , ARM_GRP_DPVFP ,
  ARM_GRP_V6M , ARM_GRP_VIRTUALIZATION , ARM_GRP_ENDING
}
 Group of ARM instructions. More...
 

Typedef Documentation

◆ arm_cc

typedef enum arm_cc arm_cc

ARM condition code.

◆ arm_cpsflag_type

Operand type for SETEND instruction.

◆ arm_cpsmode_type

◆ arm_insn

typedef enum arm_insn arm_insn

ARM instruction.

◆ arm_insn_group

Group of ARM instructions.

◆ arm_mem_barrier

The memory barrier constants map directly to the 4-bit encoding of the option field for Memory Barrier operations.

◆ arm_op_mem

typedef struct arm_op_mem arm_op_mem

Instruction's operand referring to memory This is associated with ARM_OP_MEM operand type above

◆ arm_op_type

typedef enum arm_op_type arm_op_type

Operand type for instruction's operands.

◆ arm_reg

typedef enum arm_reg arm_reg

ARM registers.

◆ arm_setend_type

Operand type for SETEND instruction.

◆ arm_shifter

typedef enum arm_shifter arm_shifter

ARM shift type.

◆ arm_sysreg

typedef enum arm_sysreg arm_sysreg

◆ arm_vectordata_type

Data type for elements of vector instructions.

◆ cs_arm

typedef struct cs_arm cs_arm

Instruction structure.

◆ cs_arm_op

typedef struct cs_arm_op cs_arm_op

Instruction operand.

Enumeration Type Documentation

◆ arm_cc

enum arm_cc

ARM condition code.

Enumerator
ARM_CC_INVALID 
ARM_CC_EQ 

Equal Equal.

ARM_CC_NE 

Not equal Not equal, or unordered.

ARM_CC_HS 

Carry set >, ==, or unordered.

ARM_CC_LO 

Carry clear Less than.

ARM_CC_MI 

Minus, negative Less than.

ARM_CC_PL 

Plus, positive or zero >, ==, or unordered.

ARM_CC_VS 

Overflow Unordered.

ARM_CC_VC 

No overflow Not unordered.

ARM_CC_HI 

Unsigned higher Greater than, or unordered.

ARM_CC_LS 

Unsigned lower or same Less than or equal.

ARM_CC_GE 

Greater than or equal Greater than or equal.

ARM_CC_LT 

Less than Less than, or unordered.

ARM_CC_GT 

Greater than Greater than.

ARM_CC_LE 

Less than or equal <, ==, or unordered.

ARM_CC_AL 

Always (unconditional) Always (unconditional)

Definition at line 33 of file arm.h.

33  {
34  ARM_CC_INVALID = 0,
35  ARM_CC_EQ,
36  ARM_CC_NE,
37  ARM_CC_HS,
38  ARM_CC_LO,
39  ARM_CC_MI,
40  ARM_CC_PL,
41  ARM_CC_VS,
42  ARM_CC_VC,
43  ARM_CC_HI,
44  ARM_CC_LS,
45  ARM_CC_GE,
46  ARM_CC_LT,
47  ARM_CC_GT,
48  ARM_CC_LE,
49  ARM_CC_AL
50 } arm_cc;
arm_cc
ARM condition code.
Definition: arm.h:33
@ ARM_CC_GT
Greater than Greater than.
Definition: arm.h:47
@ ARM_CC_LE
Less than or equal <, ==, or unordered.
Definition: arm.h:48
@ ARM_CC_AL
Always (unconditional) Always (unconditional)
Definition: arm.h:49
@ ARM_CC_HI
Unsigned higher Greater than, or unordered.
Definition: arm.h:43
@ ARM_CC_VC
No overflow Not unordered.
Definition: arm.h:42
@ ARM_CC_LS
Unsigned lower or same Less than or equal.
Definition: arm.h:44
@ ARM_CC_GE
Greater than or equal Greater than or equal.
Definition: arm.h:45
@ ARM_CC_VS
Overflow Unordered.
Definition: arm.h:41
@ ARM_CC_PL
Plus, positive or zero >, ==, or unordered.
Definition: arm.h:40
@ ARM_CC_INVALID
Definition: arm.h:34
@ ARM_CC_NE
Not equal Not equal, or unordered.
Definition: arm.h:36
@ ARM_CC_LO
Carry clear Less than.
Definition: arm.h:38
@ ARM_CC_EQ
Equal Equal.
Definition: arm.h:35
@ ARM_CC_LT
Less than Less than, or unordered.
Definition: arm.h:46
@ ARM_CC_HS
Carry set >, ==, or unordered.
Definition: arm.h:37
@ ARM_CC_MI
Minus, negative Less than.
Definition: arm.h:39

◆ arm_cpsflag_type

Operand type for SETEND instruction.

Enumerator
ARM_CPSFLAG_INVALID 
ARM_CPSFLAG_F 
ARM_CPSFLAG_I 
ARM_CPSFLAG_A 
ARM_CPSFLAG_NONE 

no flag

Definition at line 187 of file arm.h.

187  {
189  ARM_CPSFLAG_F = 1,
190  ARM_CPSFLAG_I = 2,
191  ARM_CPSFLAG_A = 4,
192  ARM_CPSFLAG_NONE = 16,
arm_cpsflag_type
Operand type for SETEND instruction.
Definition: arm.h:187
@ ARM_CPSFLAG_F
Definition: arm.h:189
@ ARM_CPSFLAG_A
Definition: arm.h:191
@ ARM_CPSFLAG_INVALID
Definition: arm.h:188
@ ARM_CPSFLAG_NONE
no flag
Definition: arm.h:192
@ ARM_CPSFLAG_I
Definition: arm.h:190

◆ arm_cpsmode_type

Enumerator
ARM_CPSMODE_INVALID 
ARM_CPSMODE_IE 
ARM_CPSMODE_ID 

Definition at line 180 of file arm.h.

180  {
182  ARM_CPSMODE_IE = 2,
183  ARM_CPSMODE_ID = 3
arm_cpsmode_type
Definition: arm.h:180
@ ARM_CPSMODE_ID
Definition: arm.h:183
@ ARM_CPSMODE_INVALID
Definition: arm.h:181
@ ARM_CPSMODE_IE
Definition: arm.h:182

◆ arm_insn

enum arm_insn

ARM instruction.

Enumerator
ARM_INS_INVALID 
ARM_INS_ADC 
ARM_INS_ADD 
ARM_INS_ADR 
ARM_INS_AESD 
ARM_INS_AESE 
ARM_INS_AESIMC 
ARM_INS_AESMC 
ARM_INS_AND 
ARM_INS_BFC 
ARM_INS_BFI 
ARM_INS_BIC 
ARM_INS_BKPT 
ARM_INS_BL 
ARM_INS_BLX 
ARM_INS_BX 
ARM_INS_BXJ 
ARM_INS_B 
ARM_INS_CDP 
ARM_INS_CDP2 
ARM_INS_CLREX 
ARM_INS_CLZ 
ARM_INS_CMN 
ARM_INS_CMP 
ARM_INS_CPS 
ARM_INS_CRC32B 
ARM_INS_CRC32CB 
ARM_INS_CRC32CH 
ARM_INS_CRC32CW 
ARM_INS_CRC32H 
ARM_INS_CRC32W 
ARM_INS_DBG 
ARM_INS_DMB 
ARM_INS_DSB 
ARM_INS_EOR 
ARM_INS_ERET 
ARM_INS_VMOV 
ARM_INS_FLDMDBX 
ARM_INS_FLDMIAX 
ARM_INS_VMRS 
ARM_INS_FSTMDBX 
ARM_INS_FSTMIAX 
ARM_INS_HINT 
ARM_INS_HLT 
ARM_INS_HVC 
ARM_INS_ISB 
ARM_INS_LDA 
ARM_INS_LDAB 
ARM_INS_LDAEX 
ARM_INS_LDAEXB 
ARM_INS_LDAEXD 
ARM_INS_LDAEXH 
ARM_INS_LDAH 
ARM_INS_LDC2L 
ARM_INS_LDC2 
ARM_INS_LDCL 
ARM_INS_LDC 
ARM_INS_LDMDA 
ARM_INS_LDMDB 
ARM_INS_LDM 
ARM_INS_LDMIB 
ARM_INS_LDRBT 
ARM_INS_LDRB 
ARM_INS_LDRD 
ARM_INS_LDREX 
ARM_INS_LDREXB 
ARM_INS_LDREXD 
ARM_INS_LDREXH 
ARM_INS_LDRH 
ARM_INS_LDRHT 
ARM_INS_LDRSB 
ARM_INS_LDRSBT 
ARM_INS_LDRSH 
ARM_INS_LDRSHT 
ARM_INS_LDRT 
ARM_INS_LDR 
ARM_INS_MCR 
ARM_INS_MCR2 
ARM_INS_MCRR 
ARM_INS_MCRR2 
ARM_INS_MLA 
ARM_INS_MLS 
ARM_INS_MOV 
ARM_INS_MOVT 
ARM_INS_MOVW 
ARM_INS_MRC 
ARM_INS_MRC2 
ARM_INS_MRRC 
ARM_INS_MRRC2 
ARM_INS_MRS 
ARM_INS_MSR 
ARM_INS_MUL 
ARM_INS_MVN 
ARM_INS_ORR 
ARM_INS_PKHBT 
ARM_INS_PKHTB 
ARM_INS_PLDW 
ARM_INS_PLD 
ARM_INS_PLI 
ARM_INS_QADD 
ARM_INS_QADD16 
ARM_INS_QADD8 
ARM_INS_QASX 
ARM_INS_QDADD 
ARM_INS_QDSUB 
ARM_INS_QSAX 
ARM_INS_QSUB 
ARM_INS_QSUB16 
ARM_INS_QSUB8 
ARM_INS_RBIT 
ARM_INS_REV 
ARM_INS_REV16 
ARM_INS_REVSH 
ARM_INS_RFEDA 
ARM_INS_RFEDB 
ARM_INS_RFEIA 
ARM_INS_RFEIB 
ARM_INS_RSB 
ARM_INS_RSC 
ARM_INS_SADD16 
ARM_INS_SADD8 
ARM_INS_SASX 
ARM_INS_SBC 
ARM_INS_SBFX 
ARM_INS_SDIV 
ARM_INS_SEL 
ARM_INS_SETEND 
ARM_INS_SHA1C 
ARM_INS_SHA1H 
ARM_INS_SHA1M 
ARM_INS_SHA1P 
ARM_INS_SHA1SU0 
ARM_INS_SHA1SU1 
ARM_INS_SHA256H 
ARM_INS_SHA256H2 
ARM_INS_SHA256SU0 
ARM_INS_SHA256SU1 
ARM_INS_SHADD16 
ARM_INS_SHADD8 
ARM_INS_SHASX 
ARM_INS_SHSAX 
ARM_INS_SHSUB16 
ARM_INS_SHSUB8 
ARM_INS_SMC 
ARM_INS_SMLABB 
ARM_INS_SMLABT 
ARM_INS_SMLAD 
ARM_INS_SMLADX 
ARM_INS_SMLAL 
ARM_INS_SMLALBB 
ARM_INS_SMLALBT 
ARM_INS_SMLALD 
ARM_INS_SMLALDX 
ARM_INS_SMLALTB 
ARM_INS_SMLALTT 
ARM_INS_SMLATB 
ARM_INS_SMLATT 
ARM_INS_SMLAWB 
ARM_INS_SMLAWT 
ARM_INS_SMLSD 
ARM_INS_SMLSDX 
ARM_INS_SMLSLD 
ARM_INS_SMLSLDX 
ARM_INS_SMMLA 
ARM_INS_SMMLAR 
ARM_INS_SMMLS 
ARM_INS_SMMLSR 
ARM_INS_SMMUL 
ARM_INS_SMMULR 
ARM_INS_SMUAD 
ARM_INS_SMUADX 
ARM_INS_SMULBB 
ARM_INS_SMULBT 
ARM_INS_SMULL 
ARM_INS_SMULTB 
ARM_INS_SMULTT 
ARM_INS_SMULWB 
ARM_INS_SMULWT 
ARM_INS_SMUSD 
ARM_INS_SMUSDX 
ARM_INS_SRSDA 
ARM_INS_SRSDB 
ARM_INS_SRSIA 
ARM_INS_SRSIB 
ARM_INS_SSAT 
ARM_INS_SSAT16 
ARM_INS_SSAX 
ARM_INS_SSUB16 
ARM_INS_SSUB8 
ARM_INS_STC2L 
ARM_INS_STC2 
ARM_INS_STCL 
ARM_INS_STC 
ARM_INS_STL 
ARM_INS_STLB 
ARM_INS_STLEX 
ARM_INS_STLEXB 
ARM_INS_STLEXD 
ARM_INS_STLEXH 
ARM_INS_STLH 
ARM_INS_STMDA 
ARM_INS_STMDB 
ARM_INS_STM 
ARM_INS_STMIB 
ARM_INS_STRBT 
ARM_INS_STRB 
ARM_INS_STRD 
ARM_INS_STREX 
ARM_INS_STREXB 
ARM_INS_STREXD 
ARM_INS_STREXH 
ARM_INS_STRH 
ARM_INS_STRHT 
ARM_INS_STRT 
ARM_INS_STR 
ARM_INS_SUB 
ARM_INS_SVC 
ARM_INS_SWP 
ARM_INS_SWPB 
ARM_INS_SXTAB 
ARM_INS_SXTAB16 
ARM_INS_SXTAH 
ARM_INS_SXTB 
ARM_INS_SXTB16 
ARM_INS_SXTH 
ARM_INS_TEQ 
ARM_INS_TRAP 
ARM_INS_TST 
ARM_INS_UADD16 
ARM_INS_UADD8 
ARM_INS_UASX 
ARM_INS_UBFX 
ARM_INS_UDF 
ARM_INS_UDIV 
ARM_INS_UHADD16 
ARM_INS_UHADD8 
ARM_INS_UHASX 
ARM_INS_UHSAX 
ARM_INS_UHSUB16 
ARM_INS_UHSUB8 
ARM_INS_UMAAL 
ARM_INS_UMLAL 
ARM_INS_UMULL 
ARM_INS_UQADD16 
ARM_INS_UQADD8 
ARM_INS_UQASX 
ARM_INS_UQSAX 
ARM_INS_UQSUB16 
ARM_INS_UQSUB8 
ARM_INS_USAD8 
ARM_INS_USADA8 
ARM_INS_USAT 
ARM_INS_USAT16 
ARM_INS_USAX 
ARM_INS_USUB16 
ARM_INS_USUB8 
ARM_INS_UXTAB 
ARM_INS_UXTAB16 
ARM_INS_UXTAH 
ARM_INS_UXTB 
ARM_INS_UXTB16 
ARM_INS_UXTH 
ARM_INS_VABAL 
ARM_INS_VABA 
ARM_INS_VABDL 
ARM_INS_VABD 
ARM_INS_VABS 
ARM_INS_VACGE 
ARM_INS_VACGT 
ARM_INS_VADD 
ARM_INS_VADDHN 
ARM_INS_VADDL 
ARM_INS_VADDW 
ARM_INS_VAND 
ARM_INS_VBIC 
ARM_INS_VBIF 
ARM_INS_VBIT 
ARM_INS_VBSL 
ARM_INS_VCEQ 
ARM_INS_VCGE 
ARM_INS_VCGT 
ARM_INS_VCLE 
ARM_INS_VCLS 
ARM_INS_VCLT 
ARM_INS_VCLZ 
ARM_INS_VCMP 
ARM_INS_VCMPE 
ARM_INS_VCNT 
ARM_INS_VCVTA 
ARM_INS_VCVTB 
ARM_INS_VCVT 
ARM_INS_VCVTM 
ARM_INS_VCVTN 
ARM_INS_VCVTP 
ARM_INS_VCVTT 
ARM_INS_VDIV 
ARM_INS_VDUP 
ARM_INS_VEOR 
ARM_INS_VEXT 
ARM_INS_VFMA 
ARM_INS_VFMS 
ARM_INS_VFNMA 
ARM_INS_VFNMS 
ARM_INS_VHADD 
ARM_INS_VHSUB 
ARM_INS_VLD1 
ARM_INS_VLD2 
ARM_INS_VLD3 
ARM_INS_VLD4 
ARM_INS_VLDMDB 
ARM_INS_VLDMIA 
ARM_INS_VLDR 
ARM_INS_VMAXNM 
ARM_INS_VMAX 
ARM_INS_VMINNM 
ARM_INS_VMIN 
ARM_INS_VMLA 
ARM_INS_VMLAL 
ARM_INS_VMLS 
ARM_INS_VMLSL 
ARM_INS_VMOVL 
ARM_INS_VMOVN 
ARM_INS_VMSR 
ARM_INS_VMUL 
ARM_INS_VMULL 
ARM_INS_VMVN 
ARM_INS_VNEG 
ARM_INS_VNMLA 
ARM_INS_VNMLS 
ARM_INS_VNMUL 
ARM_INS_VORN 
ARM_INS_VORR 
ARM_INS_VPADAL 
ARM_INS_VPADDL 
ARM_INS_VPADD 
ARM_INS_VPMAX 
ARM_INS_VPMIN 
ARM_INS_VQABS 
ARM_INS_VQADD 
ARM_INS_VQDMLAL 
ARM_INS_VQDMLSL 
ARM_INS_VQDMULH 
ARM_INS_VQDMULL 
ARM_INS_VQMOVUN 
ARM_INS_VQMOVN 
ARM_INS_VQNEG 
ARM_INS_VQRDMULH 
ARM_INS_VQRSHL 
ARM_INS_VQRSHRN 
ARM_INS_VQRSHRUN 
ARM_INS_VQSHL 
ARM_INS_VQSHLU 
ARM_INS_VQSHRN 
ARM_INS_VQSHRUN 
ARM_INS_VQSUB 
ARM_INS_VRADDHN 
ARM_INS_VRECPE 
ARM_INS_VRECPS 
ARM_INS_VREV16 
ARM_INS_VREV32 
ARM_INS_VREV64 
ARM_INS_VRHADD 
ARM_INS_VRINTA 
ARM_INS_VRINTM 
ARM_INS_VRINTN 
ARM_INS_VRINTP 
ARM_INS_VRINTR 
ARM_INS_VRINTX 
ARM_INS_VRINTZ 
ARM_INS_VRSHL 
ARM_INS_VRSHRN 
ARM_INS_VRSHR 
ARM_INS_VRSQRTE 
ARM_INS_VRSQRTS 
ARM_INS_VRSRA 
ARM_INS_VRSUBHN 
ARM_INS_VSELEQ 
ARM_INS_VSELGE 
ARM_INS_VSELGT 
ARM_INS_VSELVS 
ARM_INS_VSHLL 
ARM_INS_VSHL 
ARM_INS_VSHRN 
ARM_INS_VSHR 
ARM_INS_VSLI 
ARM_INS_VSQRT 
ARM_INS_VSRA 
ARM_INS_VSRI 
ARM_INS_VST1 
ARM_INS_VST2 
ARM_INS_VST3 
ARM_INS_VST4 
ARM_INS_VSTMDB 
ARM_INS_VSTMIA 
ARM_INS_VSTR 
ARM_INS_VSUB 
ARM_INS_VSUBHN 
ARM_INS_VSUBL 
ARM_INS_VSUBW 
ARM_INS_VSWP 
ARM_INS_VTBL 
ARM_INS_VTBX 
ARM_INS_VCVTR 
ARM_INS_VTRN 
ARM_INS_VTST 
ARM_INS_VUZP 
ARM_INS_VZIP 
ARM_INS_ADDW 
ARM_INS_ASR 
ARM_INS_DCPS1 
ARM_INS_DCPS2 
ARM_INS_DCPS3 
ARM_INS_IT 
ARM_INS_LSL 
ARM_INS_LSR 
ARM_INS_ORN 
ARM_INS_ROR 
ARM_INS_RRX 
ARM_INS_SUBW 
ARM_INS_TBB 
ARM_INS_TBH 
ARM_INS_CBNZ 
ARM_INS_CBZ 
ARM_INS_POP 
ARM_INS_PUSH 
ARM_INS_NOP 
ARM_INS_YIELD 
ARM_INS_WFE 
ARM_INS_WFI 
ARM_INS_SEV 
ARM_INS_SEVL 
ARM_INS_VPUSH 
ARM_INS_VPOP 
ARM_INS_ENDING 

Definition at line 443 of file arm.h.

443  {
444  ARM_INS_INVALID = 0,
445 
446  ARM_INS_ADC,
447  ARM_INS_ADD,
448  ARM_INS_ADR,
449  ARM_INS_AESD,
450  ARM_INS_AESE,
453  ARM_INS_AND,
454  ARM_INS_BFC,
455  ARM_INS_BFI,
456  ARM_INS_BIC,
457  ARM_INS_BKPT,
458  ARM_INS_BL,
459  ARM_INS_BLX,
460  ARM_INS_BX,
461  ARM_INS_BXJ,
462  ARM_INS_B,
463  ARM_INS_CDP,
464  ARM_INS_CDP2,
466  ARM_INS_CLZ,
467  ARM_INS_CMN,
468  ARM_INS_CMP,
469  ARM_INS_CPS,
476  ARM_INS_DBG,
477  ARM_INS_DMB,
478  ARM_INS_DSB,
479  ARM_INS_EOR,
480  ARM_INS_ERET,
481  ARM_INS_VMOV,
484  ARM_INS_VMRS,
487  ARM_INS_HINT,
488  ARM_INS_HLT,
489  ARM_INS_HVC,
490  ARM_INS_ISB,
491  ARM_INS_LDA,
492  ARM_INS_LDAB,
497  ARM_INS_LDAH,
499  ARM_INS_LDC2,
500  ARM_INS_LDCL,
501  ARM_INS_LDC,
504  ARM_INS_LDM,
507  ARM_INS_LDRB,
508  ARM_INS_LDRD,
513  ARM_INS_LDRH,
519  ARM_INS_LDRT,
520  ARM_INS_LDR,
521  ARM_INS_MCR,
522  ARM_INS_MCR2,
523  ARM_INS_MCRR,
525  ARM_INS_MLA,
526  ARM_INS_MLS,
527  ARM_INS_MOV,
528  ARM_INS_MOVT,
529  ARM_INS_MOVW,
530  ARM_INS_MRC,
531  ARM_INS_MRC2,
532  ARM_INS_MRRC,
534  ARM_INS_MRS,
535  ARM_INS_MSR,
536  ARM_INS_MUL,
537  ARM_INS_MVN,
538  ARM_INS_ORR,
541  ARM_INS_PLDW,
542  ARM_INS_PLD,
543  ARM_INS_PLI,
544  ARM_INS_QADD,
547  ARM_INS_QASX,
550  ARM_INS_QSAX,
551  ARM_INS_QSUB,
554  ARM_INS_RBIT,
555  ARM_INS_REV,
562  ARM_INS_RSB,
563  ARM_INS_RSC,
566  ARM_INS_SASX,
567  ARM_INS_SBC,
568  ARM_INS_SBFX,
569  ARM_INS_SDIV,
570  ARM_INS_SEL,
588  ARM_INS_SMC,
629  ARM_INS_SSAT,
631  ARM_INS_SSAX,
635  ARM_INS_STC2,
636  ARM_INS_STCL,
637  ARM_INS_STC,
638  ARM_INS_STL,
639  ARM_INS_STLB,
644  ARM_INS_STLH,
647  ARM_INS_STM,
650  ARM_INS_STRB,
651  ARM_INS_STRD,
656  ARM_INS_STRH,
658  ARM_INS_STRT,
659  ARM_INS_STR,
660  ARM_INS_SUB,
661  ARM_INS_SVC,
662  ARM_INS_SWP,
663  ARM_INS_SWPB,
667  ARM_INS_SXTB,
669  ARM_INS_SXTH,
670  ARM_INS_TEQ,
671  ARM_INS_TRAP,
672  ARM_INS_TST,
675  ARM_INS_UASX,
676  ARM_INS_UBFX,
677  ARM_INS_UDF,
678  ARM_INS_UDIV,
696  ARM_INS_USAT,
698  ARM_INS_USAX,
704  ARM_INS_UXTB,
706  ARM_INS_UXTH,
708  ARM_INS_VABA,
710  ARM_INS_VABD,
711  ARM_INS_VABS,
714  ARM_INS_VADD,
718  ARM_INS_VAND,
719  ARM_INS_VBIC,
720  ARM_INS_VBIF,
721  ARM_INS_VBIT,
722  ARM_INS_VBSL,
723  ARM_INS_VCEQ,
724  ARM_INS_VCGE,
725  ARM_INS_VCGT,
726  ARM_INS_VCLE,
727  ARM_INS_VCLS,
728  ARM_INS_VCLT,
729  ARM_INS_VCLZ,
730  ARM_INS_VCMP,
732  ARM_INS_VCNT,
735  ARM_INS_VCVT,
740  ARM_INS_VDIV,
741  ARM_INS_VDUP,
742  ARM_INS_VEOR,
743  ARM_INS_VEXT,
744  ARM_INS_VFMA,
745  ARM_INS_VFMS,
750  ARM_INS_VLD1,
751  ARM_INS_VLD2,
752  ARM_INS_VLD3,
753  ARM_INS_VLD4,
756  ARM_INS_VLDR,
758  ARM_INS_VMAX,
760  ARM_INS_VMIN,
761  ARM_INS_VMLA,
763  ARM_INS_VMLS,
767  ARM_INS_VMSR,
768  ARM_INS_VMUL,
770  ARM_INS_VMVN,
771  ARM_INS_VNEG,
775  ARM_INS_VORN,
776  ARM_INS_VORR,
826  ARM_INS_VSHL,
828  ARM_INS_VSHR,
829  ARM_INS_VSLI,
831  ARM_INS_VSRA,
832  ARM_INS_VSRI,
833  ARM_INS_VST1,
834  ARM_INS_VST2,
835  ARM_INS_VST3,
836  ARM_INS_VST4,
839  ARM_INS_VSTR,
840  ARM_INS_VSUB,
844  ARM_INS_VSWP,
845  ARM_INS_VTBL,
846  ARM_INS_VTBX,
848  ARM_INS_VTRN,
849  ARM_INS_VTST,
850  ARM_INS_VUZP,
851  ARM_INS_VZIP,
852  ARM_INS_ADDW,
853  ARM_INS_ASR,
857  ARM_INS_IT,
858  ARM_INS_LSL,
859  ARM_INS_LSR,
860  ARM_INS_ORN,
861  ARM_INS_ROR,
862  ARM_INS_RRX,
863  ARM_INS_SUBW,
864  ARM_INS_TBB,
865  ARM_INS_TBH,
866  ARM_INS_CBNZ,
867  ARM_INS_CBZ,
868  ARM_INS_POP,
869  ARM_INS_PUSH,
870 
871  // special instructions
872  ARM_INS_NOP,
874  ARM_INS_WFE,
875  ARM_INS_WFI,
876  ARM_INS_SEV,
877  ARM_INS_SEVL,
879  ARM_INS_VPOP,
880 
881  ARM_INS_ENDING, // <-- mark the end of the list of instructions
882 } arm_insn;
arm_insn
ARM instruction.
Definition: arm.h:443
@ ARM_INS_VCVTM
Definition: arm.h:736
@ ARM_INS_CDP2
Definition: arm.h:464
@ ARM_INS_RFEIA
Definition: arm.h:560
@ ARM_INS_SMLAD
Definition: arm.h:591
@ ARM_INS_SMLSLD
Definition: arm.h:606
@ ARM_INS_TBH
Definition: arm.h:865
@ ARM_INS_ADR
Definition: arm.h:448
@ ARM_INS_QADD8
Definition: arm.h:546
@ ARM_INS_MRC2
Definition: arm.h:531
@ ARM_INS_AESE
Definition: arm.h:450
@ ARM_INS_USAX
Definition: arm.h:698
@ ARM_INS_VQSHL
Definition: arm.h:795
@ ARM_INS_VPOP
Definition: arm.h:879
@ ARM_INS_STC2L
Definition: arm.h:634
@ ARM_INS_CRC32B
Definition: arm.h:470
@ ARM_INS_QADD16
Definition: arm.h:545
@ ARM_INS_USADA8
Definition: arm.h:695
@ ARM_INS_VCLT
Definition: arm.h:728
@ ARM_INS_VPADDL
Definition: arm.h:778
@ ARM_INS_SEL
Definition: arm.h:570
@ ARM_INS_FLDMIAX
Definition: arm.h:483
@ ARM_INS_VABDL
Definition: arm.h:709
@ ARM_INS_CRC32CW
Definition: arm.h:473
@ ARM_INS_VRSQRTE
Definition: arm.h:817
@ ARM_INS_SHSAX
Definition: arm.h:585
@ ARM_INS_SHSUB8
Definition: arm.h:587
@ ARM_INS_LDCL
Definition: arm.h:500
@ ARM_INS_TEQ
Definition: arm.h:670
@ ARM_INS_VABA
Definition: arm.h:708
@ ARM_INS_SXTB16
Definition: arm.h:668
@ ARM_INS_SMMUL
Definition: arm.h:612
@ ARM_INS_VLDMIA
Definition: arm.h:755
@ ARM_INS_LDAEXH
Definition: arm.h:496
@ ARM_INS_SADD16
Definition: arm.h:564
@ ARM_INS_LDC
Definition: arm.h:501
@ ARM_INS_VRINTZ
Definition: arm.h:813
@ ARM_INS_VMRS
Definition: arm.h:484
@ ARM_INS_MRRC2
Definition: arm.h:533
@ ARM_INS_VLDR
Definition: arm.h:756
@ ARM_INS_VCEQ
Definition: arm.h:723
@ ARM_INS_VQRSHRN
Definition: arm.h:793
@ ARM_INS_VCVTB
Definition: arm.h:734
@ ARM_INS_QSUB
Definition: arm.h:551
@ ARM_INS_SHSUB16
Definition: arm.h:586
@ ARM_INS_UADD8
Definition: arm.h:674
@ ARM_INS_SMLATT
Definition: arm.h:601
@ ARM_INS_VBIT
Definition: arm.h:721
@ ARM_INS_LDRSH
Definition: arm.h:517
@ ARM_INS_AESD
Definition: arm.h:449
@ ARM_INS_STR
Definition: arm.h:659
@ ARM_INS_UMAAL
Definition: arm.h:685
@ ARM_INS_STLEXH
Definition: arm.h:643
@ ARM_INS_SHA256H2
Definition: arm.h:579
@ ARM_INS_VCGT
Definition: arm.h:725
@ ARM_INS_VRINTN
Definition: arm.h:809
@ ARM_INS_VMOV
Definition: arm.h:481
@ ARM_INS_LDRT
Definition: arm.h:519
@ ARM_INS_VCMPE
Definition: arm.h:731
@ ARM_INS_VORN
Definition: arm.h:775
@ ARM_INS_VMLS
Definition: arm.h:763
@ ARM_INS_TBB
Definition: arm.h:864
@ ARM_INS_BXJ
Definition: arm.h:461
@ ARM_INS_SHADD8
Definition: arm.h:583
@ ARM_INS_VZIP
Definition: arm.h:851
@ ARM_INS_VSRI
Definition: arm.h:832
@ ARM_INS_VCVTR
Definition: arm.h:847
@ ARM_INS_SMC
Definition: arm.h:588
@ ARM_INS_SEVL
Definition: arm.h:877
@ ARM_INS_VBIC
Definition: arm.h:719
@ ARM_INS_CRC32CB
Definition: arm.h:471
@ ARM_INS_SRSIB
Definition: arm.h:628
@ ARM_INS_SXTAH
Definition: arm.h:666
@ ARM_INS_VDUP
Definition: arm.h:741
@ ARM_INS_VFNMA
Definition: arm.h:746
@ ARM_INS_SMLALBT
Definition: arm.h:595
@ ARM_INS_VLDMDB
Definition: arm.h:754
@ ARM_INS_VRSHRN
Definition: arm.h:815
@ ARM_INS_VSELGT
Definition: arm.h:823
@ ARM_INS_RFEIB
Definition: arm.h:561
@ ARM_INS_STRH
Definition: arm.h:656
@ ARM_INS_USAT16
Definition: arm.h:697
@ ARM_INS_FSTMIAX
Definition: arm.h:486
@ ARM_INS_CRC32H
Definition: arm.h:474
@ ARM_INS_VST3
Definition: arm.h:835
@ ARM_INS_STLH
Definition: arm.h:644
@ ARM_INS_ADC
Definition: arm.h:446
@ ARM_INS_SASX
Definition: arm.h:566
@ ARM_INS_DMB
Definition: arm.h:477
@ ARM_INS_VSLI
Definition: arm.h:829
@ ARM_INS_VSUBW
Definition: arm.h:843
@ ARM_INS_LDC2L
Definition: arm.h:498
@ ARM_INS_VPADD
Definition: arm.h:779
@ ARM_INS_ORN
Definition: arm.h:860
@ ARM_INS_UXTB16
Definition: arm.h:705
@ ARM_INS_BX
Definition: arm.h:460
@ ARM_INS_SMLALD
Definition: arm.h:596
@ ARM_INS_LDRB
Definition: arm.h:507
@ ARM_INS_VTBL
Definition: arm.h:845
@ ARM_INS_SUB
Definition: arm.h:660
@ ARM_INS_DCPS3
Definition: arm.h:856
@ ARM_INS_UQSUB8
Definition: arm.h:693
@ ARM_INS_STREXH
Definition: arm.h:655
@ ARM_INS_VQADD
Definition: arm.h:783
@ ARM_INS_IT
Definition: arm.h:857
@ ARM_INS_ASR
Definition: arm.h:853
@ ARM_INS_ISB
Definition: arm.h:490
@ ARM_INS_VRSHL
Definition: arm.h:814
@ ARM_INS_VQDMLAL
Definition: arm.h:784
@ ARM_INS_LDRHT
Definition: arm.h:514
@ ARM_INS_MLS
Definition: arm.h:526
@ ARM_INS_SMLSD
Definition: arm.h:604
@ ARM_INS_CDP
Definition: arm.h:463
@ ARM_INS_VQRSHRUN
Definition: arm.h:794
@ ARM_INS_LDAH
Definition: arm.h:497
@ ARM_INS_RSB
Definition: arm.h:562
@ ARM_INS_VQSHRUN
Definition: arm.h:798
@ ARM_INS_UXTB
Definition: arm.h:704
@ ARM_INS_VNMLS
Definition: arm.h:773
@ ARM_INS_VADDHN
Definition: arm.h:715
@ ARM_INS_SRSIA
Definition: arm.h:627
@ ARM_INS_AND
Definition: arm.h:453
@ ARM_INS_SMLALTB
Definition: arm.h:598
@ ARM_INS_VACGT
Definition: arm.h:713
@ ARM_INS_VQDMULL
Definition: arm.h:787
@ ARM_INS_SMULL
Definition: arm.h:618
@ ARM_INS_VORR
Definition: arm.h:776
@ ARM_INS_VUZP
Definition: arm.h:850
@ ARM_INS_STC
Definition: arm.h:637
@ ARM_INS_STRB
Definition: arm.h:650
@ ARM_INS_UHASX
Definition: arm.h:681
@ ARM_INS_LDRSBT
Definition: arm.h:516
@ ARM_INS_SHADD16
Definition: arm.h:582
@ ARM_INS_SSUB16
Definition: arm.h:632
@ ARM_INS_VSHRN
Definition: arm.h:827
@ ARM_INS_TST
Definition: arm.h:672
@ ARM_INS_SEV
Definition: arm.h:876
@ ARM_INS_SWP
Definition: arm.h:662
@ ARM_INS_SXTH
Definition: arm.h:669
@ ARM_INS_CLREX
Definition: arm.h:465
@ ARM_INS_VMAXNM
Definition: arm.h:757
@ ARM_INS_VSUBL
Definition: arm.h:842
@ ARM_INS_PUSH
Definition: arm.h:869
@ ARM_INS_BKPT
Definition: arm.h:457
@ ARM_INS_VCNT
Definition: arm.h:732
@ ARM_INS_VQSHLU
Definition: arm.h:796
@ ARM_INS_VHSUB
Definition: arm.h:749
@ ARM_INS_FSTMDBX
Definition: arm.h:485
@ ARM_INS_MOVT
Definition: arm.h:528
@ ARM_INS_MOV
Definition: arm.h:527
@ ARM_INS_VFMS
Definition: arm.h:745
@ ARM_INS_QSAX
Definition: arm.h:550
@ ARM_INS_QDSUB
Definition: arm.h:549
@ ARM_INS_PLD
Definition: arm.h:542
@ ARM_INS_SADD8
Definition: arm.h:565
@ ARM_INS_MCRR2
Definition: arm.h:524
@ ARM_INS_SMMLS
Definition: arm.h:610
@ ARM_INS_SHA1M
Definition: arm.h:574
@ ARM_INS_UQADD16
Definition: arm.h:688
@ ARM_INS_SRSDB
Definition: arm.h:626
@ ARM_INS_SHASX
Definition: arm.h:584
@ ARM_INS_VADDL
Definition: arm.h:716
@ ARM_INS_UXTAH
Definition: arm.h:703
@ ARM_INS_SSAT
Definition: arm.h:629
@ ARM_INS_FLDMDBX
Definition: arm.h:482
@ ARM_INS_UHADD16
Definition: arm.h:679
@ ARM_INS_UHSUB8
Definition: arm.h:684
@ ARM_INS_VRINTX
Definition: arm.h:812
@ ARM_INS_LDRSB
Definition: arm.h:515
@ ARM_INS_VTBX
Definition: arm.h:846
@ ARM_INS_SSAT16
Definition: arm.h:630
@ ARM_INS_STREXD
Definition: arm.h:654
@ ARM_INS_LDRBT
Definition: arm.h:506
@ ARM_INS_VADDW
Definition: arm.h:717
@ ARM_INS_SSAX
Definition: arm.h:631
@ ARM_INS_SMLABT
Definition: arm.h:590
@ ARM_INS_SMULTT
Definition: arm.h:620
@ ARM_INS_PKHBT
Definition: arm.h:539
@ ARM_INS_UQASX
Definition: arm.h:690
@ ARM_INS_SMULWB
Definition: arm.h:621
@ ARM_INS_VTST
Definition: arm.h:849
@ ARM_INS_LDM
Definition: arm.h:504
@ ARM_INS_PLI
Definition: arm.h:543
@ ARM_INS_VHADD
Definition: arm.h:748
@ ARM_INS_SMMLA
Definition: arm.h:608
@ ARM_INS_LDAEXD
Definition: arm.h:495
@ ARM_INS_VQSHRN
Definition: arm.h:797
@ ARM_INS_VCVTA
Definition: arm.h:733
@ ARM_INS_SMLSDX
Definition: arm.h:605
@ ARM_INS_SBFX
Definition: arm.h:568
@ ARM_INS_VDIV
Definition: arm.h:740
@ ARM_INS_STMDB
Definition: arm.h:646
@ ARM_INS_VRSQRTS
Definition: arm.h:818
@ ARM_INS_BFI
Definition: arm.h:455
@ ARM_INS_QASX
Definition: arm.h:547
@ ARM_INS_VMAX
Definition: arm.h:758
@ ARM_INS_VPUSH
Definition: arm.h:878
@ ARM_INS_SMMLSR
Definition: arm.h:611
@ ARM_INS_SHA1C
Definition: arm.h:572
@ ARM_INS_SHA256SU1
Definition: arm.h:581
@ ARM_INS_VST4
Definition: arm.h:836
@ ARM_INS_VMINNM
Definition: arm.h:759
@ ARM_INS_VFNMS
Definition: arm.h:747
@ ARM_INS_VRHADD
Definition: arm.h:806
@ ARM_INS_MRS
Definition: arm.h:534
@ ARM_INS_TRAP
Definition: arm.h:671
@ ARM_INS_LDAEX
Definition: arm.h:493
@ ARM_INS_VADD
Definition: arm.h:714
@ ARM_INS_VSTMDB
Definition: arm.h:837
@ ARM_INS_RFEDA
Definition: arm.h:558
@ ARM_INS_UHSUB16
Definition: arm.h:683
@ ARM_INS_VSTR
Definition: arm.h:839
@ ARM_INS_LDAEXB
Definition: arm.h:494
@ ARM_INS_AESMC
Definition: arm.h:452
@ ARM_INS_WFI
Definition: arm.h:875
@ ARM_INS_VNMUL
Definition: arm.h:774
@ ARM_INS_UBFX
Definition: arm.h:676
@ ARM_INS_LSL
Definition: arm.h:858
@ ARM_INS_MCR2
Definition: arm.h:522
@ ARM_INS_VMVN
Definition: arm.h:770
@ ARM_INS_AESIMC
Definition: arm.h:451
@ ARM_INS_UQSUB16
Definition: arm.h:692
@ ARM_INS_LSR
Definition: arm.h:859
@ ARM_INS_VABAL
Definition: arm.h:707
@ ARM_INS_VQRSHL
Definition: arm.h:792
@ ARM_INS_STCL
Definition: arm.h:636
@ ARM_INS_VCLS
Definition: arm.h:727
@ ARM_INS_LDAB
Definition: arm.h:492
@ ARM_INS_VSUB
Definition: arm.h:840
@ ARM_INS_DSB
Definition: arm.h:478
@ ARM_INS_SMUSD
Definition: arm.h:623
@ ARM_INS_USUB16
Definition: arm.h:699
@ ARM_INS_SHA256H
Definition: arm.h:578
@ ARM_INS_STRBT
Definition: arm.h:649
@ ARM_INS_SMLAWB
Definition: arm.h:602
@ ARM_INS_SMLALTT
Definition: arm.h:599
@ ARM_INS_VRINTM
Definition: arm.h:808
@ ARM_INS_SETEND
Definition: arm.h:571
@ ARM_INS_SWPB
Definition: arm.h:663
@ ARM_INS_MCR
Definition: arm.h:521
@ ARM_INS_UMULL
Definition: arm.h:687
@ ARM_INS_BIC
Definition: arm.h:456
@ ARM_INS_VCVT
Definition: arm.h:735
@ ARM_INS_RFEDB
Definition: arm.h:559
@ ARM_INS_RBIT
Definition: arm.h:554
@ ARM_INS_VSHR
Definition: arm.h:828
@ ARM_INS_VPMAX
Definition: arm.h:780
@ ARM_INS_DCPS1
Definition: arm.h:854
@ ARM_INS_STMIB
Definition: arm.h:648
@ ARM_INS_VMOVL
Definition: arm.h:765
@ ARM_INS_SMLSLDX
Definition: arm.h:607
@ ARM_INS_VACGE
Definition: arm.h:712
@ ARM_INS_STC2
Definition: arm.h:635
@ ARM_INS_CPS
Definition: arm.h:469
@ ARM_INS_VQMOVUN
Definition: arm.h:788
@ ARM_INS_VRECPS
Definition: arm.h:802
@ ARM_INS_VCVTP
Definition: arm.h:738
@ ARM_INS_VSRA
Definition: arm.h:831
@ ARM_INS_SMLALDX
Definition: arm.h:597
@ ARM_INS_REVSH
Definition: arm.h:557
@ ARM_INS_VCMP
Definition: arm.h:730
@ ARM_INS_UDF
Definition: arm.h:677
@ ARM_INS_SHA1SU0
Definition: arm.h:576
@ ARM_INS_STL
Definition: arm.h:638
@ ARM_INS_CRC32W
Definition: arm.h:475
@ ARM_INS_VQDMULH
Definition: arm.h:786
@ ARM_INS_VQSUB
Definition: arm.h:799
@ ARM_INS_DBG
Definition: arm.h:476
@ ARM_INS_MUL
Definition: arm.h:536
@ ARM_INS_SMLABB
Definition: arm.h:589
@ ARM_INS_VREV64
Definition: arm.h:805
@ ARM_INS_ADDW
Definition: arm.h:852
@ ARM_INS_LDRH
Definition: arm.h:513
@ ARM_INS_VEOR
Definition: arm.h:742
@ ARM_INS_QSUB16
Definition: arm.h:552
@ ARM_INS_MCRR
Definition: arm.h:523
@ ARM_INS_SMUAD
Definition: arm.h:614
@ ARM_INS_CBZ
Definition: arm.h:867
@ ARM_INS_UHADD8
Definition: arm.h:680
@ ARM_INS_UMLAL
Definition: arm.h:686
@ ARM_INS_VRSHR
Definition: arm.h:816
@ ARM_INS_REV16
Definition: arm.h:556
@ ARM_INS_LDREXD
Definition: arm.h:511
@ ARM_INS_UQSAX
Definition: arm.h:691
@ ARM_INS_ENDING
Definition: arm.h:881
@ ARM_INS_SXTAB16
Definition: arm.h:665
@ ARM_INS_SMLADX
Definition: arm.h:592
@ ARM_INS_HVC
Definition: arm.h:489
@ ARM_INS_EOR
Definition: arm.h:479
@ ARM_INS_VMUL
Definition: arm.h:768
@ ARM_INS_HLT
Definition: arm.h:488
@ ARM_INS_HINT
Definition: arm.h:487
@ ARM_INS_SMULBB
Definition: arm.h:616
@ ARM_INS_NOP
Definition: arm.h:872
@ ARM_INS_VREV32
Definition: arm.h:804
@ ARM_INS_VQRDMULH
Definition: arm.h:791
@ ARM_INS_STLEXB
Definition: arm.h:641
@ ARM_INS_VST2
Definition: arm.h:834
@ ARM_INS_LDMDA
Definition: arm.h:502
@ ARM_INS_UDIV
Definition: arm.h:678
@ ARM_INS_VQNEG
Definition: arm.h:790
@ ARM_INS_MRRC
Definition: arm.h:532
@ ARM_INS_DCPS2
Definition: arm.h:855
@ ARM_INS_SXTAB
Definition: arm.h:664
@ ARM_INS_VMIN
Definition: arm.h:760
@ ARM_INS_VRINTP
Definition: arm.h:810
@ ARM_INS_STMDA
Definition: arm.h:645
@ ARM_INS_LDREX
Definition: arm.h:509
@ ARM_INS_UHSAX
Definition: arm.h:682
@ ARM_INS_UASX
Definition: arm.h:675
@ ARM_INS_SMULTB
Definition: arm.h:619
@ ARM_INS_VRSRA
Definition: arm.h:819
@ ARM_INS_ADD
Definition: arm.h:447
@ ARM_INS_VAND
Definition: arm.h:718
@ ARM_INS_LDRSHT
Definition: arm.h:518
@ ARM_INS_QDADD
Definition: arm.h:548
@ ARM_INS_VSQRT
Definition: arm.h:830
@ ARM_INS_SMLALBB
Definition: arm.h:594
@ ARM_INS_POP
Definition: arm.h:868
@ ARM_INS_BLX
Definition: arm.h:459
@ ARM_INS_STM
Definition: arm.h:647
@ ARM_INS_RSC
Definition: arm.h:563
@ ARM_INS_VPMIN
Definition: arm.h:781
@ ARM_INS_VQMOVN
Definition: arm.h:789
@ ARM_INS_LDC2
Definition: arm.h:499
@ ARM_INS_VTRN
Definition: arm.h:848
@ ARM_INS_SMUSDX
Definition: arm.h:624
@ ARM_INS_CRC32CH
Definition: arm.h:472
@ ARM_INS_VQABS
Definition: arm.h:782
@ ARM_INS_LDMIB
Definition: arm.h:505
@ ARM_INS_VLD2
Definition: arm.h:751
@ ARM_INS_SMLAWT
Definition: arm.h:603
@ ARM_INS_SMMULR
Definition: arm.h:613
@ ARM_INS_CMN
Definition: arm.h:467
@ ARM_INS_SMUADX
Definition: arm.h:615
@ ARM_INS_VSELVS
Definition: arm.h:824
@ ARM_INS_SMMLAR
Definition: arm.h:609
@ ARM_INS_VBSL
Definition: arm.h:722
@ ARM_INS_VMOVN
Definition: arm.h:766
@ ARM_INS_UQADD8
Definition: arm.h:689
@ ARM_INS_VCLE
Definition: arm.h:726
@ ARM_INS_VSELEQ
Definition: arm.h:821
@ ARM_INS_VQDMLSL
Definition: arm.h:785
@ ARM_INS_ERET
Definition: arm.h:480
@ ARM_INS_VLD1
Definition: arm.h:750
@ ARM_INS_VLD4
Definition: arm.h:753
@ ARM_INS_VSUBHN
Definition: arm.h:841
@ ARM_INS_VSWP
Definition: arm.h:844
@ ARM_INS_ROR
Definition: arm.h:861
@ ARM_INS_VEXT
Definition: arm.h:743
@ ARM_INS_LDR
Definition: arm.h:520
@ ARM_INS_STRT
Definition: arm.h:658
@ ARM_INS_PLDW
Definition: arm.h:541
@ ARM_INS_VNMLA
Definition: arm.h:772
@ ARM_INS_STREXB
Definition: arm.h:653
@ ARM_INS_REV
Definition: arm.h:555
@ ARM_INS_VSHLL
Definition: arm.h:825
@ ARM_INS_STRD
Definition: arm.h:651
@ ARM_INS_SHA1H
Definition: arm.h:573
@ ARM_INS_VRADDHN
Definition: arm.h:800
@ ARM_INS_SBC
Definition: arm.h:567
@ ARM_INS_CBNZ
Definition: arm.h:866
@ ARM_INS_VMLAL
Definition: arm.h:762
@ ARM_INS_SHA256SU0
Definition: arm.h:580
@ ARM_INS_VCLZ
Definition: arm.h:729
@ ARM_INS_VSELGE
Definition: arm.h:822
@ ARM_INS_VMSR
Definition: arm.h:767
@ ARM_INS_LDREXH
Definition: arm.h:512
@ ARM_INS_VABS
Definition: arm.h:711
@ ARM_INS_STLEXD
Definition: arm.h:642
@ ARM_INS_INVALID
Definition: arm.h:444
@ ARM_INS_STLB
Definition: arm.h:639
@ ARM_INS_VST1
Definition: arm.h:833
@ ARM_INS_SDIV
Definition: arm.h:569
@ ARM_INS_VRINTR
Definition: arm.h:811
@ ARM_INS_MVN
Definition: arm.h:537
@ ARM_INS_UXTAB
Definition: arm.h:701
@ ARM_INS_SMLAL
Definition: arm.h:593
@ ARM_INS_VCVTT
Definition: arm.h:739
@ ARM_INS_SVC
Definition: arm.h:661
@ ARM_INS_BFC
Definition: arm.h:454
@ ARM_INS_B
Definition: arm.h:462
@ ARM_INS_MRC
Definition: arm.h:530
@ ARM_INS_STLEX
Definition: arm.h:640
@ ARM_INS_SMULWT
Definition: arm.h:622
@ ARM_INS_SHA1SU1
Definition: arm.h:577
@ ARM_INS_UXTAB16
Definition: arm.h:702
@ ARM_INS_VNEG
Definition: arm.h:771
@ ARM_INS_MLA
Definition: arm.h:525
@ ARM_INS_VMLA
Definition: arm.h:761
@ ARM_INS_SUBW
Definition: arm.h:863
@ ARM_INS_VRSUBHN
Definition: arm.h:820
@ ARM_INS_BL
Definition: arm.h:458
@ ARM_INS_LDMDB
Definition: arm.h:503
@ ARM_INS_STREX
Definition: arm.h:652
@ ARM_INS_CMP
Definition: arm.h:468
@ ARM_INS_USUB8
Definition: arm.h:700
@ ARM_INS_SMULBT
Definition: arm.h:617
@ ARM_INS_UXTH
Definition: arm.h:706
@ ARM_INS_QADD
Definition: arm.h:544
@ ARM_INS_VCVTN
Definition: arm.h:737
@ ARM_INS_VRINTA
Definition: arm.h:807
@ ARM_INS_USAT
Definition: arm.h:696
@ ARM_INS_SHA1P
Definition: arm.h:575
@ ARM_INS_VSHL
Definition: arm.h:826
@ ARM_INS_LDRD
Definition: arm.h:508
@ ARM_INS_SRSDA
Definition: arm.h:625
@ ARM_INS_QSUB8
Definition: arm.h:553
@ ARM_INS_VREV16
Definition: arm.h:803
@ ARM_INS_VMLSL
Definition: arm.h:764
@ ARM_INS_VPADAL
Definition: arm.h:777
@ ARM_INS_VFMA
Definition: arm.h:744
@ ARM_INS_MOVW
Definition: arm.h:529
@ ARM_INS_LDREXB
Definition: arm.h:510
@ ARM_INS_USAD8
Definition: arm.h:694
@ ARM_INS_VSTMIA
Definition: arm.h:838
@ ARM_INS_SMLATB
Definition: arm.h:600
@ ARM_INS_STRHT
Definition: arm.h:657
@ ARM_INS_SSUB8
Definition: arm.h:633
@ ARM_INS_YIELD
Definition: arm.h:873
@ ARM_INS_VMULL
Definition: arm.h:769
@ ARM_INS_RRX
Definition: arm.h:862
@ ARM_INS_VABD
Definition: arm.h:710
@ ARM_INS_ORR
Definition: arm.h:538
@ ARM_INS_CLZ
Definition: arm.h:466
@ ARM_INS_VBIF
Definition: arm.h:720
@ ARM_INS_WFE
Definition: arm.h:874
@ ARM_INS_LDA
Definition: arm.h:491
@ ARM_INS_MSR
Definition: arm.h:535
@ ARM_INS_VRECPE
Definition: arm.h:801
@ ARM_INS_PKHTB
Definition: arm.h:540
@ ARM_INS_VLD3
Definition: arm.h:752
@ ARM_INS_VCGE
Definition: arm.h:724
@ ARM_INS_SXTB
Definition: arm.h:667
@ ARM_INS_UADD16
Definition: arm.h:673

◆ arm_insn_group

Group of ARM instructions.

Enumerator
ARM_GRP_INVALID 

= CS_GRP_INVALID

ARM_GRP_JUMP 

= CS_GRP_JUMP

ARM_GRP_CALL 

= CS_GRP_CALL

ARM_GRP_INT 

= CS_GRP_INT

ARM_GRP_PRIVILEGE 

= CS_GRP_PRIVILEGE

ARM_GRP_BRANCH_RELATIVE 

= CS_GRP_BRANCH_RELATIVE

ARM_GRP_CRYPTO 
ARM_GRP_DATABARRIER 
ARM_GRP_DIVIDE 
ARM_GRP_FPARMV8 
ARM_GRP_MULTPRO 
ARM_GRP_NEON 
ARM_GRP_T2EXTRACTPACK 
ARM_GRP_THUMB2DSP 
ARM_GRP_TRUSTZONE 
ARM_GRP_V4T 
ARM_GRP_V5T 
ARM_GRP_V5TE 
ARM_GRP_V6 
ARM_GRP_V6T2 
ARM_GRP_V7 
ARM_GRP_V8 
ARM_GRP_VFP2 
ARM_GRP_VFP3 
ARM_GRP_VFP4 
ARM_GRP_ARM 
ARM_GRP_MCLASS 
ARM_GRP_NOTMCLASS 
ARM_GRP_THUMB 
ARM_GRP_THUMB1ONLY 
ARM_GRP_THUMB2 
ARM_GRP_PREV8 
ARM_GRP_FPVMLX 
ARM_GRP_MULOPS 
ARM_GRP_CRC 
ARM_GRP_DPVFP 
ARM_GRP_V6M 
ARM_GRP_VIRTUALIZATION 
ARM_GRP_ENDING 

Definition at line 885 of file arm.h.

885  {
886  ARM_GRP_INVALID = 0,
887 
888  // Generic groups
889  // all jump instructions (conditional+direct+indirect jumps)
890  ARM_GRP_JUMP,
891  ARM_GRP_CALL,
892  ARM_GRP_INT = 4,
893  ARM_GRP_PRIVILEGE = 6,
895 
896  // Architecture-specific groups
897  ARM_GRP_CRYPTO = 128,
902  ARM_GRP_NEON,
906  ARM_GRP_V4T,
907  ARM_GRP_V5T,
908  ARM_GRP_V5TE,
909  ARM_GRP_V6,
910  ARM_GRP_V6T2,
911  ARM_GRP_V7,
912  ARM_GRP_V8,
913  ARM_GRP_VFP2,
914  ARM_GRP_VFP3,
915  ARM_GRP_VFP4,
916  ARM_GRP_ARM,
925  ARM_GRP_CRC,
927  ARM_GRP_V6M,
929 
arm_insn_group
Group of ARM instructions.
Definition: arm.h:885
@ ARM_GRP_DIVIDE
Definition: arm.h:899
@ ARM_GRP_THUMB2
Definition: arm.h:921
@ ARM_GRP_DPVFP
Definition: arm.h:926
@ ARM_GRP_BRANCH_RELATIVE
= CS_GRP_BRANCH_RELATIVE
Definition: arm.h:894
@ ARM_GRP_ENDING
Definition: arm.h:930
@ ARM_GRP_T2EXTRACTPACK
Definition: arm.h:903
@ ARM_GRP_TRUSTZONE
Definition: arm.h:905
@ ARM_GRP_JUMP
= CS_GRP_JUMP
Definition: arm.h:890
@ ARM_GRP_V6M
Definition: arm.h:927
@ ARM_GRP_INVALID
= CS_GRP_INVALID
Definition: arm.h:886
@ ARM_GRP_V5T
Definition: arm.h:907
@ ARM_GRP_ARM
Definition: arm.h:916
@ ARM_GRP_V6T2
Definition: arm.h:910
@ ARM_GRP_V4T
Definition: arm.h:906
@ ARM_GRP_PREV8
Definition: arm.h:922
@ ARM_GRP_THUMB2DSP
Definition: arm.h:904
@ ARM_GRP_THUMB
Definition: arm.h:919
@ ARM_GRP_V7
Definition: arm.h:911
@ ARM_GRP_FPARMV8
Definition: arm.h:900
@ ARM_GRP_V5TE
Definition: arm.h:908
@ ARM_GRP_PRIVILEGE
= CS_GRP_PRIVILEGE
Definition: arm.h:893
@ ARM_GRP_VFP3
Definition: arm.h:914
@ ARM_GRP_THUMB1ONLY
Definition: arm.h:920
@ ARM_GRP_MULOPS
Definition: arm.h:924
@ ARM_GRP_INT
= CS_GRP_INT
Definition: arm.h:892
@ ARM_GRP_CRYPTO
Definition: arm.h:897
@ ARM_GRP_DATABARRIER
Definition: arm.h:898
@ ARM_GRP_CRC
Definition: arm.h:925
@ ARM_GRP_VFP4
Definition: arm.h:915
@ ARM_GRP_FPVMLX
Definition: arm.h:923
@ ARM_GRP_NOTMCLASS
Definition: arm.h:918
@ ARM_GRP_V8
Definition: arm.h:912
@ ARM_GRP_MULTPRO
Definition: arm.h:901
@ ARM_GRP_V6
Definition: arm.h:909
@ ARM_GRP_MCLASS
Definition: arm.h:917
@ ARM_GRP_CALL
= CS_GRP_CALL
Definition: arm.h:891
@ ARM_GRP_NEON
Definition: arm.h:902
@ ARM_GRP_VIRTUALIZATION
Definition: arm.h:928
@ ARM_GRP_VFP2
Definition: arm.h:913

◆ arm_mem_barrier

The memory barrier constants map directly to the 4-bit encoding of the option field for Memory Barrier operations.

Enumerator
ARM_MB_INVALID 
ARM_MB_RESERVED_0 
ARM_MB_OSHLD 
ARM_MB_OSHST 
ARM_MB_OSH 
ARM_MB_RESERVED_4 
ARM_MB_NSHLD 
ARM_MB_NSHST 
ARM_MB_NSH 
ARM_MB_RESERVED_8 
ARM_MB_ISHLD 
ARM_MB_ISHST 
ARM_MB_ISH 
ARM_MB_RESERVED_12 
ARM_MB_LD 
ARM_MB_ST 
ARM_MB_SY 

Definition at line 140 of file arm.h.

140  {
141  ARM_MB_INVALID = 0,
143  ARM_MB_OSHLD,
144  ARM_MB_OSHST,
145  ARM_MB_OSH,
147  ARM_MB_NSHLD,
148  ARM_MB_NSHST,
149  ARM_MB_NSH,
151  ARM_MB_ISHLD,
152  ARM_MB_ISHST,
153  ARM_MB_ISH,
155  ARM_MB_LD,
156  ARM_MB_ST,
157  ARM_MB_SY,
arm_mem_barrier
Definition: arm.h:140
@ ARM_MB_NSH
Definition: arm.h:149
@ ARM_MB_ISHLD
Definition: arm.h:151
@ ARM_MB_OSHST
Definition: arm.h:144
@ ARM_MB_RESERVED_8
Definition: arm.h:150
@ ARM_MB_ISHST
Definition: arm.h:152
@ ARM_MB_INVALID
Definition: arm.h:141
@ ARM_MB_ST
Definition: arm.h:156
@ ARM_MB_NSHST
Definition: arm.h:148
@ ARM_MB_LD
Definition: arm.h:155
@ ARM_MB_RESERVED_0
Definition: arm.h:142
@ ARM_MB_RESERVED_4
Definition: arm.h:146
@ ARM_MB_SY
Definition: arm.h:157
@ ARM_MB_OSHLD
Definition: arm.h:143
@ ARM_MB_NSHLD
Definition: arm.h:147
@ ARM_MB_OSH
Definition: arm.h:145
@ ARM_MB_ISH
Definition: arm.h:153
@ ARM_MB_RESERVED_12
Definition: arm.h:154

◆ arm_op_type

Operand type for instruction's operands.

Enumerator
ARM_OP_INVALID 

= CS_OP_INVALID (Uninitialized).

ARM_OP_REG 

= CS_OP_REG (Register operand).

ARM_OP_IMM 

= CS_OP_IMM (Immediate operand).

ARM_OP_MEM 

= CS_OP_MEM (Memory operand).

ARM_OP_FP 

= CS_OP_FP (Floating-Point operand).

ARM_OP_CIMM 

C-Immediate (coprocessor registers)

ARM_OP_PIMM 

P-Immediate (coprocessor registers)

ARM_OP_SETEND 

operand for SETEND instruction

ARM_OP_SYSREG 

MSR/MRS special register operand.

Definition at line 161 of file arm.h.

161  {
162  ARM_OP_INVALID = 0,
163  ARM_OP_REG,
164  ARM_OP_IMM,
165  ARM_OP_MEM,
166  ARM_OP_FP,
167  ARM_OP_CIMM = 64,
168  ARM_OP_PIMM,
169  ARM_OP_SETEND,
170  ARM_OP_SYSREG,
171 } arm_op_type;
arm_op_type
Operand type for instruction's operands.
Definition: arm.h:161
@ ARM_OP_IMM
= CS_OP_IMM (Immediate operand).
Definition: arm.h:164
@ ARM_OP_REG
= CS_OP_REG (Register operand).
Definition: arm.h:163
@ ARM_OP_CIMM
C-Immediate (coprocessor registers)
Definition: arm.h:167
@ ARM_OP_SETEND
operand for SETEND instruction
Definition: arm.h:169
@ ARM_OP_PIMM
P-Immediate (coprocessor registers)
Definition: arm.h:168
@ ARM_OP_INVALID
= CS_OP_INVALID (Uninitialized).
Definition: arm.h:162
@ ARM_OP_MEM
= CS_OP_MEM (Memory operand).
Definition: arm.h:165
@ ARM_OP_FP
= CS_OP_FP (Floating-Point operand).
Definition: arm.h:166
@ ARM_OP_SYSREG
MSR/MRS special register operand.
Definition: arm.h:170

◆ arm_reg

enum arm_reg

ARM registers.

Enumerator
ARM_REG_INVALID 
ARM_REG_APSR 
ARM_REG_APSR_NZCV 
ARM_REG_CPSR 
ARM_REG_FPEXC 
ARM_REG_FPINST 
ARM_REG_FPSCR 
ARM_REG_FPSCR_NZCV 
ARM_REG_FPSID 
ARM_REG_ITSTATE 
ARM_REG_LR 
ARM_REG_PC 
ARM_REG_SP 
ARM_REG_SPSR 
ARM_REG_D0 
ARM_REG_D1 
ARM_REG_D2 
ARM_REG_D3 
ARM_REG_D4 
ARM_REG_D5 
ARM_REG_D6 
ARM_REG_D7 
ARM_REG_D8 
ARM_REG_D9 
ARM_REG_D10 
ARM_REG_D11 
ARM_REG_D12 
ARM_REG_D13 
ARM_REG_D14 
ARM_REG_D15 
ARM_REG_D16 
ARM_REG_D17 
ARM_REG_D18 
ARM_REG_D19 
ARM_REG_D20 
ARM_REG_D21 
ARM_REG_D22 
ARM_REG_D23 
ARM_REG_D24 
ARM_REG_D25 
ARM_REG_D26 
ARM_REG_D27 
ARM_REG_D28 
ARM_REG_D29 
ARM_REG_D30 
ARM_REG_D31 
ARM_REG_FPINST2 
ARM_REG_MVFR0 
ARM_REG_MVFR1 
ARM_REG_MVFR2 
ARM_REG_Q0 
ARM_REG_Q1 
ARM_REG_Q2 
ARM_REG_Q3 
ARM_REG_Q4 
ARM_REG_Q5 
ARM_REG_Q6 
ARM_REG_Q7 
ARM_REG_Q8 
ARM_REG_Q9 
ARM_REG_Q10 
ARM_REG_Q11 
ARM_REG_Q12 
ARM_REG_Q13 
ARM_REG_Q14 
ARM_REG_Q15 
ARM_REG_R0 
ARM_REG_R1 
ARM_REG_R2 
ARM_REG_R3 
ARM_REG_R4 
ARM_REG_R5 
ARM_REG_R6 
ARM_REG_R7 
ARM_REG_R8 
ARM_REG_R9 
ARM_REG_R10 
ARM_REG_R11 
ARM_REG_R12 
ARM_REG_S0 
ARM_REG_S1 
ARM_REG_S2 
ARM_REG_S3 
ARM_REG_S4 
ARM_REG_S5 
ARM_REG_S6 
ARM_REG_S7 
ARM_REG_S8 
ARM_REG_S9 
ARM_REG_S10 
ARM_REG_S11 
ARM_REG_S12 
ARM_REG_S13 
ARM_REG_S14 
ARM_REG_S15 
ARM_REG_S16 
ARM_REG_S17 
ARM_REG_S18 
ARM_REG_S19 
ARM_REG_S20 
ARM_REG_S21 
ARM_REG_S22 
ARM_REG_S23 
ARM_REG_S24 
ARM_REG_S25 
ARM_REG_S26 
ARM_REG_S27 
ARM_REG_S28 
ARM_REG_S29 
ARM_REG_S30 
ARM_REG_S31 
ARM_REG_ENDING 
ARM_REG_R13 
ARM_REG_R14 
ARM_REG_R15 
ARM_REG_SB 
ARM_REG_SL 
ARM_REG_FP 
ARM_REG_IP 

Definition at line 252 of file arm.h.

252  {
253  ARM_REG_INVALID = 0,
254  ARM_REG_APSR,
256  ARM_REG_CPSR,
263  ARM_REG_LR,
264  ARM_REG_PC,
265  ARM_REG_SP,
266  ARM_REG_SPSR,
267  ARM_REG_D0,
268  ARM_REG_D1,
269  ARM_REG_D2,
270  ARM_REG_D3,
271  ARM_REG_D4,
272  ARM_REG_D5,
273  ARM_REG_D6,
274  ARM_REG_D7,
275  ARM_REG_D8,
276  ARM_REG_D9,
277  ARM_REG_D10,
278  ARM_REG_D11,
279  ARM_REG_D12,
280  ARM_REG_D13,
281  ARM_REG_D14,
282  ARM_REG_D15,
283  ARM_REG_D16,
284  ARM_REG_D17,
285  ARM_REG_D18,
286  ARM_REG_D19,
287  ARM_REG_D20,
288  ARM_REG_D21,
289  ARM_REG_D22,
290  ARM_REG_D23,
291  ARM_REG_D24,
292  ARM_REG_D25,
293  ARM_REG_D26,
294  ARM_REG_D27,
295  ARM_REG_D28,
296  ARM_REG_D29,
297  ARM_REG_D30,
298  ARM_REG_D31,
303  ARM_REG_Q0,
304  ARM_REG_Q1,
305  ARM_REG_Q2,
306  ARM_REG_Q3,
307  ARM_REG_Q4,
308  ARM_REG_Q5,
309  ARM_REG_Q6,
310  ARM_REG_Q7,
311  ARM_REG_Q8,
312  ARM_REG_Q9,
313  ARM_REG_Q10,
314  ARM_REG_Q11,
315  ARM_REG_Q12,
316  ARM_REG_Q13,
317  ARM_REG_Q14,
318  ARM_REG_Q15,
319  ARM_REG_R0,
320  ARM_REG_R1,
321  ARM_REG_R2,
322  ARM_REG_R3,
323  ARM_REG_R4,
324  ARM_REG_R5,
325  ARM_REG_R6,
326  ARM_REG_R7,
327  ARM_REG_R8,
328  ARM_REG_R9,
329  ARM_REG_R10,
330  ARM_REG_R11,
331  ARM_REG_R12,
332  ARM_REG_S0,
333  ARM_REG_S1,
334  ARM_REG_S2,
335  ARM_REG_S3,
336  ARM_REG_S4,
337  ARM_REG_S5,
338  ARM_REG_S6,
339  ARM_REG_S7,
340  ARM_REG_S8,
341  ARM_REG_S9,
342  ARM_REG_S10,
343  ARM_REG_S11,
344  ARM_REG_S12,
345  ARM_REG_S13,
346  ARM_REG_S14,
347  ARM_REG_S15,
348  ARM_REG_S16,
349  ARM_REG_S17,
350  ARM_REG_S18,
351  ARM_REG_S19,
352  ARM_REG_S20,
353  ARM_REG_S21,
354  ARM_REG_S22,
355  ARM_REG_S23,
356  ARM_REG_S24,
357  ARM_REG_S25,
358  ARM_REG_S26,
359  ARM_REG_S27,
360  ARM_REG_S28,
361  ARM_REG_S29,
362  ARM_REG_S30,
363  ARM_REG_S31,
364 
365  ARM_REG_ENDING, // <-- mark the end of the list or registers
366 
367  // alias registers
371 
376 } arm_reg;
arm_reg
ARM registers.
Definition: arm.h:252
@ ARM_REG_S21
Definition: arm.h:353
@ ARM_REG_ENDING
Definition: arm.h:365
@ ARM_REG_D4
Definition: arm.h:271
@ ARM_REG_R12
Definition: arm.h:331
@ ARM_REG_FPINST2
Definition: arm.h:299
@ ARM_REG_Q14
Definition: arm.h:317
@ ARM_REG_SB
Definition: arm.h:372
@ ARM_REG_R14
Definition: arm.h:369
@ ARM_REG_Q8
Definition: arm.h:311
@ ARM_REG_D12
Definition: arm.h:279
@ ARM_REG_S0
Definition: arm.h:332
@ ARM_REG_S24
Definition: arm.h:356
@ ARM_REG_FPSCR
Definition: arm.h:259
@ ARM_REG_FPSID
Definition: arm.h:261
@ ARM_REG_S16
Definition: arm.h:348
@ ARM_REG_S2
Definition: arm.h:334
@ ARM_REG_S5
Definition: arm.h:337
@ ARM_REG_S4
Definition: arm.h:336
@ ARM_REG_R5
Definition: arm.h:324
@ ARM_REG_Q10
Definition: arm.h:313
@ ARM_REG_D15
Definition: arm.h:282
@ ARM_REG_S3
Definition: arm.h:335
@ ARM_REG_S8
Definition: arm.h:340
@ ARM_REG_FPSCR_NZCV
Definition: arm.h:260
@ ARM_REG_S26
Definition: arm.h:358
@ ARM_REG_Q4
Definition: arm.h:307
@ ARM_REG_APSR_NZCV
Definition: arm.h:255
@ ARM_REG_S6
Definition: arm.h:338
@ ARM_REG_S20
Definition: arm.h:352
@ ARM_REG_FPEXC
Definition: arm.h:257
@ ARM_REG_D25
Definition: arm.h:292
@ ARM_REG_R8
Definition: arm.h:327
@ ARM_REG_R4
Definition: arm.h:323
@ ARM_REG_R2
Definition: arm.h:321
@ ARM_REG_Q2
Definition: arm.h:305
@ ARM_REG_Q0
Definition: arm.h:303
@ ARM_REG_D19
Definition: arm.h:286
@ ARM_REG_S18
Definition: arm.h:350
@ ARM_REG_R10
Definition: arm.h:329
@ ARM_REG_INVALID
Definition: arm.h:253
@ ARM_REG_D3
Definition: arm.h:270
@ ARM_REG_S27
Definition: arm.h:359
@ ARM_REG_S22
Definition: arm.h:354
@ ARM_REG_R6
Definition: arm.h:325
@ ARM_REG_D7
Definition: arm.h:274
@ ARM_REG_MVFR0
Definition: arm.h:300
@ ARM_REG_D26
Definition: arm.h:293
@ ARM_REG_SL
Definition: arm.h:373
@ ARM_REG_R11
Definition: arm.h:330
@ ARM_REG_R3
Definition: arm.h:322
@ ARM_REG_D2
Definition: arm.h:269
@ ARM_REG_R15
Definition: arm.h:370
@ ARM_REG_MVFR1
Definition: arm.h:301
@ ARM_REG_S11
Definition: arm.h:343
@ ARM_REG_D30
Definition: arm.h:297
@ ARM_REG_FP
Definition: arm.h:374
@ ARM_REG_R13
Definition: arm.h:368
@ ARM_REG_S9
Definition: arm.h:341
@ ARM_REG_CPSR
Definition: arm.h:256
@ ARM_REG_LR
Definition: arm.h:263
@ ARM_REG_FPINST
Definition: arm.h:258
@ ARM_REG_Q9
Definition: arm.h:312
@ ARM_REG_ITSTATE
Definition: arm.h:262
@ ARM_REG_D16
Definition: arm.h:283
@ ARM_REG_D9
Definition: arm.h:276
@ ARM_REG_S13
Definition: arm.h:345
@ ARM_REG_D17
Definition: arm.h:284
@ ARM_REG_Q6
Definition: arm.h:309
@ ARM_REG_APSR
Definition: arm.h:254
@ ARM_REG_R0
Definition: arm.h:319
@ ARM_REG_Q15
Definition: arm.h:318
@ ARM_REG_SPSR
Definition: arm.h:266
@ ARM_REG_D11
Definition: arm.h:278
@ ARM_REG_D21
Definition: arm.h:288
@ ARM_REG_D31
Definition: arm.h:298
@ ARM_REG_Q12
Definition: arm.h:315
@ ARM_REG_S15
Definition: arm.h:347
@ ARM_REG_SP
Definition: arm.h:265
@ ARM_REG_D29
Definition: arm.h:296
@ ARM_REG_S28
Definition: arm.h:360
@ ARM_REG_PC
Definition: arm.h:264
@ ARM_REG_D18
Definition: arm.h:285
@ ARM_REG_D8
Definition: arm.h:275
@ ARM_REG_D24
Definition: arm.h:291
@ ARM_REG_S19
Definition: arm.h:351
@ ARM_REG_R1
Definition: arm.h:320
@ ARM_REG_Q1
Definition: arm.h:304
@ ARM_REG_Q7
Definition: arm.h:310
@ ARM_REG_D5
Definition: arm.h:272
@ ARM_REG_D0
Definition: arm.h:267
@ ARM_REG_S12
Definition: arm.h:344
@ ARM_REG_S14
Definition: arm.h:346
@ ARM_REG_S10
Definition: arm.h:342
@ ARM_REG_D1
Definition: arm.h:268
@ ARM_REG_D28
Definition: arm.h:295
@ ARM_REG_D13
Definition: arm.h:280
@ ARM_REG_Q3
Definition: arm.h:306
@ ARM_REG_R9
Definition: arm.h:328
@ ARM_REG_Q11
Definition: arm.h:314
@ ARM_REG_D27
Definition: arm.h:294
@ ARM_REG_IP
Definition: arm.h:375
@ ARM_REG_D6
Definition: arm.h:273
@ ARM_REG_Q13
Definition: arm.h:316
@ ARM_REG_D14
Definition: arm.h:281
@ ARM_REG_MVFR2
Definition: arm.h:302
@ ARM_REG_S17
Definition: arm.h:349
@ ARM_REG_D10
Definition: arm.h:277
@ ARM_REG_S23
Definition: arm.h:355
@ ARM_REG_D22
Definition: arm.h:289
@ ARM_REG_S7
Definition: arm.h:339
@ ARM_REG_S30
Definition: arm.h:362
@ ARM_REG_S29
Definition: arm.h:361
@ ARM_REG_S31
Definition: arm.h:363
@ ARM_REG_D23
Definition: arm.h:290
@ ARM_REG_R7
Definition: arm.h:326
@ ARM_REG_S1
Definition: arm.h:333
@ ARM_REG_S25
Definition: arm.h:357
@ ARM_REG_D20
Definition: arm.h:287
@ ARM_REG_Q5
Definition: arm.h:308

◆ arm_setend_type

Operand type for SETEND instruction.

Enumerator
ARM_SETEND_INVALID 

Uninitialized.

ARM_SETEND_BE 

BE operand.

ARM_SETEND_LE 

LE operand.

Definition at line 174 of file arm.h.

174  {
175  ARM_SETEND_INVALID = 0,
176  ARM_SETEND_BE,
177  ARM_SETEND_LE,
arm_setend_type
Operand type for SETEND instruction.
Definition: arm.h:174
@ ARM_SETEND_LE
LE operand.
Definition: arm.h:177
@ ARM_SETEND_BE
BE operand.
Definition: arm.h:176
@ ARM_SETEND_INVALID
Uninitialized.
Definition: arm.h:175

◆ arm_shifter

ARM shift type.

Enumerator
ARM_SFT_INVALID 
ARM_SFT_ASR 

shift with immediate const

ARM_SFT_LSL 

shift with immediate const

ARM_SFT_LSR 

shift with immediate const

ARM_SFT_ROR 

shift with immediate const

ARM_SFT_RRX 

shift with immediate const

ARM_SFT_ASR_REG 

shift with register

ARM_SFT_LSL_REG 

shift with register

ARM_SFT_LSR_REG 

shift with register

ARM_SFT_ROR_REG 

shift with register

ARM_SFT_RRX_REG 

shift with register

Definition at line 18 of file arm.h.

18  {
19  ARM_SFT_INVALID = 0,
20  ARM_SFT_ASR,
21  ARM_SFT_LSL,
22  ARM_SFT_LSR,
23  ARM_SFT_ROR,
24  ARM_SFT_RRX,
30 } arm_shifter;
arm_shifter
ARM shift type.
Definition: arm.h:18
@ ARM_SFT_ROR_REG
shift with register
Definition: arm.h:28
@ ARM_SFT_ASR
shift with immediate const
Definition: arm.h:20
@ ARM_SFT_LSR_REG
shift with register
Definition: arm.h:27
@ ARM_SFT_LSL_REG
shift with register
Definition: arm.h:26
@ ARM_SFT_ROR
shift with immediate const
Definition: arm.h:23
@ ARM_SFT_LSL
shift with immediate const
Definition: arm.h:21
@ ARM_SFT_RRX_REG
shift with register
Definition: arm.h:29
@ ARM_SFT_LSR
shift with immediate const
Definition: arm.h:22
@ ARM_SFT_RRX
shift with immediate const
Definition: arm.h:24
@ ARM_SFT_INVALID
Definition: arm.h:19
@ ARM_SFT_ASR_REG
shift with register
Definition: arm.h:25

◆ arm_sysreg

enum arm_sysreg
Enumerator
ARM_SYSREG_INVALID 

Special registers for MSR.

ARM_SYSREG_SPSR_C 
ARM_SYSREG_SPSR_X 
ARM_SYSREG_SPSR_S 
ARM_SYSREG_SPSR_F 
ARM_SYSREG_CPSR_C 
ARM_SYSREG_CPSR_X 
ARM_SYSREG_CPSR_S 
ARM_SYSREG_CPSR_F 
ARM_SYSREG_APSR 
ARM_SYSREG_APSR_G 
ARM_SYSREG_APSR_NZCVQ 
ARM_SYSREG_APSR_NZCVQG 
ARM_SYSREG_IAPSR 
ARM_SYSREG_IAPSR_G 
ARM_SYSREG_IAPSR_NZCVQG 
ARM_SYSREG_IAPSR_NZCVQ 
ARM_SYSREG_EAPSR 
ARM_SYSREG_EAPSR_G 
ARM_SYSREG_EAPSR_NZCVQG 
ARM_SYSREG_EAPSR_NZCVQ 
ARM_SYSREG_XPSR 
ARM_SYSREG_XPSR_G 
ARM_SYSREG_XPSR_NZCVQG 
ARM_SYSREG_XPSR_NZCVQ 
ARM_SYSREG_IPSR 
ARM_SYSREG_EPSR 
ARM_SYSREG_IEPSR 
ARM_SYSREG_MSP 
ARM_SYSREG_PSP 
ARM_SYSREG_PRIMASK 
ARM_SYSREG_BASEPRI 
ARM_SYSREG_BASEPRI_MAX 
ARM_SYSREG_FAULTMASK 
ARM_SYSREG_CONTROL 
ARM_SYSREG_R8_USR 
ARM_SYSREG_R9_USR 
ARM_SYSREG_R10_USR 
ARM_SYSREG_R11_USR 
ARM_SYSREG_R12_USR 
ARM_SYSREG_SP_USR 
ARM_SYSREG_LR_USR 
ARM_SYSREG_R8_FIQ 
ARM_SYSREG_R9_FIQ 
ARM_SYSREG_R10_FIQ 
ARM_SYSREG_R11_FIQ 
ARM_SYSREG_R12_FIQ 
ARM_SYSREG_SP_FIQ 
ARM_SYSREG_LR_FIQ 
ARM_SYSREG_LR_IRQ 
ARM_SYSREG_SP_IRQ 
ARM_SYSREG_LR_SVC 
ARM_SYSREG_SP_SVC 
ARM_SYSREG_LR_ABT 
ARM_SYSREG_SP_ABT 
ARM_SYSREG_LR_UND 
ARM_SYSREG_SP_UND 
ARM_SYSREG_LR_MON 
ARM_SYSREG_SP_MON 
ARM_SYSREG_ELR_HYP 
ARM_SYSREG_SP_HYP 
ARM_SYSREG_SPSR_FIQ 
ARM_SYSREG_SPSR_IRQ 
ARM_SYSREG_SPSR_SVC 
ARM_SYSREG_SPSR_ABT 
ARM_SYSREG_SPSR_UND 
ARM_SYSREG_SPSR_MON 
ARM_SYSREG_SPSR_HYP 

Definition at line 52 of file arm.h.

52  {
55 
56  // SPSR* registers can be OR combined
61 
62  // CPSR* registers can be OR combined
63  ARM_SYSREG_CPSR_C = 16,
64  ARM_SYSREG_CPSR_X = 32,
65  ARM_SYSREG_CPSR_S = 64,
66  ARM_SYSREG_CPSR_F = 128,
67 
68  // independent registers
69  ARM_SYSREG_APSR = 256,
73 
78 
83 
88 
92 
100 
101  // Banked Registers
128 
136 } arm_sysreg;
arm_sysreg
Definition: arm.h:52
@ ARM_SYSREG_BASEPRI
Definition: arm.h:96
@ ARM_SYSREG_SP_MON
Definition: arm.h:125
@ ARM_SYSREG_LR_USR
Definition: arm.h:108
@ ARM_SYSREG_SP_UND
Definition: arm.h:123
@ ARM_SYSREG_R9_FIQ
Definition: arm.h:110
@ ARM_SYSREG_BASEPRI_MAX
Definition: arm.h:97
@ ARM_SYSREG_ELR_HYP
Definition: arm.h:126
@ ARM_SYSREG_EAPSR_NZCVQG
Definition: arm.h:81
@ ARM_SYSREG_R9_USR
Definition: arm.h:103
@ ARM_SYSREG_EAPSR
Definition: arm.h:79
@ ARM_SYSREG_R10_FIQ
Definition: arm.h:111
@ ARM_SYSREG_APSR_NZCVQG
Definition: arm.h:72
@ ARM_SYSREG_LR_MON
Definition: arm.h:124
@ ARM_SYSREG_R11_USR
Definition: arm.h:105
@ ARM_SYSREG_SPSR_SVC
Definition: arm.h:131
@ ARM_SYSREG_CPSR_C
Definition: arm.h:63
@ ARM_SYSREG_IAPSR_NZCVQG
Definition: arm.h:76
@ ARM_SYSREG_EAPSR_G
Definition: arm.h:80
@ ARM_SYSREG_IAPSR
Definition: arm.h:74
@ ARM_SYSREG_PSP
Definition: arm.h:94
@ ARM_SYSREG_SP_IRQ
Definition: arm.h:117
@ ARM_SYSREG_SPSR_FIQ
Definition: arm.h:129
@ ARM_SYSREG_IPSR
Definition: arm.h:89
@ ARM_SYSREG_R12_USR
Definition: arm.h:106
@ ARM_SYSREG_SPSR_MON
Definition: arm.h:134
@ ARM_SYSREG_IAPSR_G
Definition: arm.h:75
@ ARM_SYSREG_LR_UND
Definition: arm.h:122
@ ARM_SYSREG_SPSR_ABT
Definition: arm.h:132
@ ARM_SYSREG_EPSR
Definition: arm.h:90
@ ARM_SYSREG_LR_FIQ
Definition: arm.h:115
@ ARM_SYSREG_XPSR_NZCVQG
Definition: arm.h:86
@ ARM_SYSREG_LR_IRQ
Definition: arm.h:116
@ ARM_SYSREG_SPSR_HYP
Definition: arm.h:135
@ ARM_SYSREG_SP_SVC
Definition: arm.h:119
@ ARM_SYSREG_XPSR_G
Definition: arm.h:85
@ ARM_SYSREG_IAPSR_NZCVQ
Definition: arm.h:77
@ ARM_SYSREG_SPSR_UND
Definition: arm.h:133
@ ARM_SYSREG_EAPSR_NZCVQ
Definition: arm.h:82
@ ARM_SYSREG_R8_FIQ
Definition: arm.h:109
@ ARM_SYSREG_SPSR_S
Definition: arm.h:59
@ ARM_SYSREG_SP_ABT
Definition: arm.h:121
@ ARM_SYSREG_SP_HYP
Definition: arm.h:127
@ ARM_SYSREG_XPSR
Definition: arm.h:84
@ ARM_SYSREG_CPSR_X
Definition: arm.h:64
@ ARM_SYSREG_SP_FIQ
Definition: arm.h:114
@ ARM_SYSREG_APSR_G
Definition: arm.h:70
@ ARM_SYSREG_R12_FIQ
Definition: arm.h:113
@ ARM_SYSREG_SPSR_X
Definition: arm.h:58
@ ARM_SYSREG_FAULTMASK
Definition: arm.h:98
@ ARM_SYSREG_APSR
Definition: arm.h:69
@ ARM_SYSREG_CPSR_S
Definition: arm.h:65
@ ARM_SYSREG_SP_USR
Definition: arm.h:107
@ ARM_SYSREG_R11_FIQ
Definition: arm.h:112
@ ARM_SYSREG_CONTROL
Definition: arm.h:99
@ ARM_SYSREG_R10_USR
Definition: arm.h:104
@ ARM_SYSREG_MSP
Definition: arm.h:93
@ ARM_SYSREG_LR_ABT
Definition: arm.h:120
@ ARM_SYSREG_INVALID
Special registers for MSR.
Definition: arm.h:54
@ ARM_SYSREG_APSR_NZCVQ
Definition: arm.h:71
@ ARM_SYSREG_SPSR_IRQ
Definition: arm.h:130
@ ARM_SYSREG_PRIMASK
Definition: arm.h:95
@ ARM_SYSREG_LR_SVC
Definition: arm.h:118
@ ARM_SYSREG_R8_USR
Definition: arm.h:102
@ ARM_SYSREG_SPSR_F
Definition: arm.h:60
@ ARM_SYSREG_SPSR_C
Definition: arm.h:57
@ ARM_SYSREG_XPSR_NZCVQ
Definition: arm.h:87
@ ARM_SYSREG_IEPSR
Definition: arm.h:91
@ ARM_SYSREG_CPSR_F
Definition: arm.h:66

◆ arm_vectordata_type

Data type for elements of vector instructions.

Enumerator
ARM_VECTORDATA_INVALID 
ARM_VECTORDATA_I8 
ARM_VECTORDATA_I16 
ARM_VECTORDATA_I32 
ARM_VECTORDATA_I64 
ARM_VECTORDATA_S8 
ARM_VECTORDATA_S16 
ARM_VECTORDATA_S32 
ARM_VECTORDATA_S64 
ARM_VECTORDATA_U8 
ARM_VECTORDATA_U16 
ARM_VECTORDATA_U32 
ARM_VECTORDATA_U64 
ARM_VECTORDATA_P8 
ARM_VECTORDATA_F32 
ARM_VECTORDATA_F64 
ARM_VECTORDATA_F16F64 
ARM_VECTORDATA_F64F16 
ARM_VECTORDATA_F32F16 
ARM_VECTORDATA_F16F32 
ARM_VECTORDATA_F64F32 
ARM_VECTORDATA_F32F64 
ARM_VECTORDATA_S32F32 
ARM_VECTORDATA_U32F32 
ARM_VECTORDATA_F32S32 
ARM_VECTORDATA_F32U32 
ARM_VECTORDATA_F64S16 
ARM_VECTORDATA_F32S16 
ARM_VECTORDATA_F64S32 
ARM_VECTORDATA_S16F64 
ARM_VECTORDATA_S16F32 
ARM_VECTORDATA_S32F64 
ARM_VECTORDATA_U16F64 
ARM_VECTORDATA_U16F32 
ARM_VECTORDATA_U32F64 
ARM_VECTORDATA_F64U16 
ARM_VECTORDATA_F32U16 
ARM_VECTORDATA_F64U32 

Definition at line 196 of file arm.h.

196  {
198 
199  // Integer type
204 
205  // Signed integer type
210 
211  // Unsigned integer type
216 
217  // Data type for VMUL/VMULL
219 
220  // Floating type
223 
224  // Convert float <-> float
225  ARM_VECTORDATA_F16F64, // f16.f64
226  ARM_VECTORDATA_F64F16, // f64.f16
227  ARM_VECTORDATA_F32F16, // f32.f16
228  ARM_VECTORDATA_F16F32, // f32.f16
229  ARM_VECTORDATA_F64F32, // f64.f32
230  ARM_VECTORDATA_F32F64, // f32.f64
231 
232  // Convert integer <-> float
233  ARM_VECTORDATA_S32F32, // s32.f32
234  ARM_VECTORDATA_U32F32, // u32.f32
235  ARM_VECTORDATA_F32S32, // f32.s32
236  ARM_VECTORDATA_F32U32, // f32.u32
237  ARM_VECTORDATA_F64S16, // f64.s16
238  ARM_VECTORDATA_F32S16, // f32.s16
239  ARM_VECTORDATA_F64S32, // f64.s32
240  ARM_VECTORDATA_S16F64, // s16.f64
241  ARM_VECTORDATA_S16F32, // s16.f64
242  ARM_VECTORDATA_S32F64, // s32.f64
243  ARM_VECTORDATA_U16F64, // u16.f64
244  ARM_VECTORDATA_U16F32, // u16.f32
245  ARM_VECTORDATA_U32F64, // u32.f64
246  ARM_VECTORDATA_F64U16, // f64.u16
247  ARM_VECTORDATA_F32U16, // f32.u16
248  ARM_VECTORDATA_F64U32, // f64.u32
arm_vectordata_type
Data type for elements of vector instructions.
Definition: arm.h:196
@ ARM_VECTORDATA_F64
Definition: arm.h:222
@ ARM_VECTORDATA_U64
Definition: arm.h:215
@ ARM_VECTORDATA_I64
Definition: arm.h:203
@ ARM_VECTORDATA_S16F64
Definition: arm.h:240
@ ARM_VECTORDATA_I32
Definition: arm.h:202
@ ARM_VECTORDATA_P8
Definition: arm.h:218
@ ARM_VECTORDATA_F32
Definition: arm.h:221
@ ARM_VECTORDATA_S32F32
Definition: arm.h:233
@ ARM_VECTORDATA_F64F32
Definition: arm.h:229
@ ARM_VECTORDATA_S16
Definition: arm.h:207
@ ARM_VECTORDATA_F32F16
Definition: arm.h:227
@ ARM_VECTORDATA_F16F32
Definition: arm.h:228
@ ARM_VECTORDATA_F64F16
Definition: arm.h:226
@ ARM_VECTORDATA_U32
Definition: arm.h:214
@ ARM_VECTORDATA_F64S16
Definition: arm.h:237
@ ARM_VECTORDATA_S32
Definition: arm.h:208
@ ARM_VECTORDATA_F32U32
Definition: arm.h:236
@ ARM_VECTORDATA_U16
Definition: arm.h:213
@ ARM_VECTORDATA_S8
Definition: arm.h:206
@ ARM_VECTORDATA_U16F32
Definition: arm.h:244
@ ARM_VECTORDATA_U16F64
Definition: arm.h:243
@ ARM_VECTORDATA_U32F64
Definition: arm.h:245
@ ARM_VECTORDATA_I16
Definition: arm.h:201
@ ARM_VECTORDATA_INVALID
Definition: arm.h:197
@ ARM_VECTORDATA_U32F32
Definition: arm.h:234
@ ARM_VECTORDATA_F32U16
Definition: arm.h:247
@ ARM_VECTORDATA_I8
Definition: arm.h:200
@ ARM_VECTORDATA_S64
Definition: arm.h:209
@ ARM_VECTORDATA_F16F64
Definition: arm.h:225
@ ARM_VECTORDATA_F32S16
Definition: arm.h:238
@ ARM_VECTORDATA_S32F64
Definition: arm.h:242
@ ARM_VECTORDATA_F32F64
Definition: arm.h:230
@ ARM_VECTORDATA_F32S32
Definition: arm.h:235
@ ARM_VECTORDATA_S16F32
Definition: arm.h:241
@ ARM_VECTORDATA_F64S32
Definition: arm.h:239
@ ARM_VECTORDATA_F64U16
Definition: arm.h:246
@ ARM_VECTORDATA_F64U32
Definition: arm.h:248
@ ARM_VECTORDATA_U8
Definition: arm.h:212