Macros | Typedefs | Enumerations | Functions
ARMBaseInfo.h File Reference
#include "capstone/arm.h"
#include "ARMGenRegisterInfo.inc"
Include dependency graph for ARMBaseInfo.h:

Go to the source code of this file.

Macros

#define GET_REGINFO_ENUM
 

Typedefs

typedef enum ARMCC_CondCodes ARMCC_CondCodes
 
typedef enum ARMII_AddrMode ARMII_AddrMode
 ARM Addressing Modes. More...
 

Enumerations

enum  {
  ARMII_AddrModeMask = 0x1f, ARMII_IndexModeShift = 5, ARMII_IndexModeMask = 3 << ARMII_IndexModeShift, ARMII_FormShift = 7,
  ARMII_FormMask = 0x3f << ARMII_FormShift, ARMII_Pseudo = 0 << ARMII_FormShift, ARMII_MulFrm = 1 << ARMII_FormShift, ARMII_BrFrm = 2 << ARMII_FormShift,
  ARMII_BrMiscFrm = 3 << ARMII_FormShift, ARMII_DPFrm = 4 << ARMII_FormShift, ARMII_DPSoRegFrm = 5 << ARMII_FormShift, ARMII_LdFrm = 6 << ARMII_FormShift,
  ARMII_StFrm = 7 << ARMII_FormShift, ARMII_LdMiscFrm = 8 << ARMII_FormShift, ARMII_StMiscFrm = 9 << ARMII_FormShift, ARMII_LdStMulFrm = 10 << ARMII_FormShift,
  ARMII_LdStExFrm = 11 << ARMII_FormShift, ARMII_ArithMiscFrm = 12 << ARMII_FormShift, ARMII_SatFrm = 13 << ARMII_FormShift, ARMII_ExtFrm = 14 << ARMII_FormShift,
  ARMII_VFPUnaryFrm = 15 << ARMII_FormShift, ARMII_VFPBinaryFrm = 16 << ARMII_FormShift, ARMII_VFPConv1Frm = 17 << ARMII_FormShift, ARMII_VFPConv2Frm = 18 << ARMII_FormShift,
  ARMII_VFPConv3Frm = 19 << ARMII_FormShift, ARMII_VFPConv4Frm = 20 << ARMII_FormShift, ARMII_VFPConv5Frm = 21 << ARMII_FormShift, ARMII_VFPLdStFrm = 22 << ARMII_FormShift,
  ARMII_VFPLdStMulFrm = 23 << ARMII_FormShift, ARMII_VFPMiscFrm = 24 << ARMII_FormShift, ARMII_ThumbFrm = 25 << ARMII_FormShift, ARMII_MiscFrm = 26 << ARMII_FormShift,
  ARMII_NGetLnFrm = 27 << ARMII_FormShift, ARMII_NSetLnFrm = 28 << ARMII_FormShift, ARMII_NDupFrm = 29 << ARMII_FormShift, ARMII_NLdStFrm = 30 << ARMII_FormShift,
  ARMII_N1RegModImmFrm = 31 << ARMII_FormShift, ARMII_N2RegFrm = 32 << ARMII_FormShift, ARMII_NVCVTFrm = 33 << ARMII_FormShift, ARMII_NVDupLnFrm = 34 << ARMII_FormShift,
  ARMII_N2RegVShLFrm = 35 << ARMII_FormShift, ARMII_N2RegVShRFrm = 36 << ARMII_FormShift, ARMII_N3RegFrm = 37 << ARMII_FormShift, ARMII_N3RegVShFrm = 38 << ARMII_FormShift,
  ARMII_NVExtFrm = 39 << ARMII_FormShift, ARMII_NVMulSLFrm = 40 << ARMII_FormShift, ARMII_NVTBLFrm = 41 << ARMII_FormShift, ARMII_UnaryDP = 1 << 13,
  ARMII_Xform16Bit = 1 << 14, ARMII_ThumbArithFlagSetting = 1 << 18, ARMII_DomainShift = 15, ARMII_DomainMask = 7 << ARMII_DomainShift,
  ARMII_DomainGeneral = 0 << ARMII_DomainShift, ARMII_DomainVFP = 1 << ARMII_DomainShift, ARMII_DomainNEON = 2 << ARMII_DomainShift, ARMII_DomainNEONA8 = 4 << ARMII_DomainShift,
  ARMII_ShiftTypeShift = 4, ARMII_M_BitShift = 5, ARMII_ShiftImmShift = 5, ARMII_ShiftShift = 7,
  ARMII_N_BitShift = 7, ARMII_ImmHiShift = 8, ARMII_SoRotImmShift = 8, ARMII_RegRsShift = 8,
  ARMII_ExtRotImmShift = 10, ARMII_RegRdLoShift = 12, ARMII_RegRdShift = 12, ARMII_RegRdHiShift = 16,
  ARMII_RegRnShift = 16, ARMII_S_BitShift = 20, ARMII_W_BitShift = 21, ARMII_AM3_I_BitShift = 22,
  ARMII_D_BitShift = 22, ARMII_U_BitShift = 23, ARMII_P_BitShift = 24, ARMII_I_BitShift = 25,
  ARMII_CondShift = 28
}
 
enum  ARM_ISB_InstSyncBOpt {
  ARM_ISB_RESERVED_0 = 0, ARM_ISB_RESERVED_1 = 1, ARM_ISB_RESERVED_2 = 2, ARM_ISB_RESERVED_3 = 3,
  ARM_ISB_RESERVED_4 = 4, ARM_ISB_RESERVED_5 = 5, ARM_ISB_RESERVED_6 = 6, ARM_ISB_RESERVED_7 = 7,
  ARM_ISB_RESERVED_8 = 8, ARM_ISB_RESERVED_9 = 9, ARM_ISB_RESERVED_10 = 10, ARM_ISB_RESERVED_11 = 11,
  ARM_ISB_RESERVED_12 = 12, ARM_ISB_RESERVED_13 = 13, ARM_ISB_RESERVED_14 = 14, ARM_ISB_SY = 15
}
 
enum  ARMCC_CondCodes {
  ARMCC_EQ, ARMCC_NE, ARMCC_HS, ARMCC_LO,
  ARMCC_MI, ARMCC_PL, ARMCC_VS, ARMCC_VC,
  ARMCC_HI, ARMCC_LS, ARMCC_GE, ARMCC_LT,
  ARMCC_GT, ARMCC_LE, ARMCC_AL
}
 
enum  ARMII_AddrMode {
  ARMII_AddrModeNone = 0, ARMII_AddrMode1 = 1, ARMII_AddrMode2 = 2, ARMII_AddrMode3 = 3,
  ARMII_AddrMode4 = 4, ARMII_AddrMode5 = 5, ARMII_AddrMode6 = 6, ARMII_AddrModeT1_1 = 7,
  ARMII_AddrModeT1_2 = 8, ARMII_AddrModeT1_4 = 9, ARMII_AddrModeT1_s = 10, ARMII_AddrModeT2_i12 = 11,
  ARMII_AddrModeT2_i8 = 12, ARMII_AddrModeT2_so = 13, ARMII_AddrModeT2_pc = 14, ARMII_AddrModeT2_i8s4 = 15,
  ARMII_AddrMode_i12 = 16
}
 ARM Addressing Modes. More...
 
enum  ARMII_IndexMode { ARMII_IndexModeNone = 0, ARMII_IndexModePre = 1, ARMII_IndexModePost = 2, ARMII_IndexModeUpd = 3 }
 
enum  ARMII_TOF {
  ARMII_MO_NO_FLAG, ARMII_MO_LO16, ARMII_MO_HI16, ARMII_MO_LO16_NONLAZY,
  ARMII_MO_HI16_NONLAZY, ARMII_MO_LO16_NONLAZY_PIC, ARMII_MO_HI16_NONLAZY_PIC, ARMII_MO_PLT
}
 Target Operand Flag enum. More...
 

Functions

static const char * ARM_ISB_InstSyncBOptToString (unsigned val)
 
static const char * ARM_MB_MemBOptToString (unsigned val, bool HasV8)
 
static const char * ARM_PROC_IFlagsToString (unsigned val)
 
static const char * ARM_PROC_IModToString (unsigned val)
 
static const char * ARMCC_ARMCondCodeToString (ARMCC_CondCodes CC)
 
static ARMCC_CondCodes ARMCC_getOppositeCondition (ARMCC_CondCodes CC)
 
static const char * ARMII_AddrModeToString (ARMII_AddrMode addrmode)
 
static bool isARMLowRegister (unsigned Reg)
 

Macro Definition Documentation

◆ GET_REGINFO_ENUM

#define GET_REGINFO_ENUM

Definition at line 28 of file ARMBaseInfo.h.

Typedef Documentation

◆ ARMCC_CondCodes

◆ ARMII_AddrMode

ARM Addressing Modes.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ARMII_AddrModeMask 
ARMII_IndexModeShift 
ARMII_IndexModeMask 
ARMII_FormShift 
ARMII_FormMask 
ARMII_Pseudo 
ARMII_MulFrm 
ARMII_BrFrm 
ARMII_BrMiscFrm 
ARMII_DPFrm 
ARMII_DPSoRegFrm 
ARMII_LdFrm 
ARMII_StFrm 
ARMII_LdMiscFrm 
ARMII_StMiscFrm 
ARMII_LdStMulFrm 
ARMII_LdStExFrm 
ARMII_ArithMiscFrm 
ARMII_SatFrm 
ARMII_ExtFrm 
ARMII_VFPUnaryFrm 
ARMII_VFPBinaryFrm 
ARMII_VFPConv1Frm 
ARMII_VFPConv2Frm 
ARMII_VFPConv3Frm 
ARMII_VFPConv4Frm 
ARMII_VFPConv5Frm 
ARMII_VFPLdStFrm 
ARMII_VFPLdStMulFrm 
ARMII_VFPMiscFrm 
ARMII_ThumbFrm 
ARMII_MiscFrm 
ARMII_NGetLnFrm 
ARMII_NSetLnFrm 
ARMII_NDupFrm 
ARMII_NLdStFrm 
ARMII_N1RegModImmFrm 
ARMII_N2RegFrm 
ARMII_NVCVTFrm 
ARMII_NVDupLnFrm 
ARMII_N2RegVShLFrm 
ARMII_N2RegVShRFrm 
ARMII_N3RegFrm 
ARMII_N3RegVShFrm 
ARMII_NVExtFrm 
ARMII_NVMulSLFrm 
ARMII_NVTBLFrm 
ARMII_UnaryDP 
ARMII_Xform16Bit 
ARMII_ThumbArithFlagSetting 
ARMII_DomainShift 
ARMII_DomainMask 
ARMII_DomainGeneral 
ARMII_DomainVFP 
ARMII_DomainNEON 
ARMII_DomainNEONA8 
ARMII_ShiftTypeShift 
ARMII_M_BitShift 
ARMII_ShiftImmShift 
ARMII_ShiftShift 
ARMII_N_BitShift 
ARMII_ImmHiShift 
ARMII_SoRotImmShift 
ARMII_RegRsShift 
ARMII_ExtRotImmShift 
ARMII_RegRdLoShift 
ARMII_RegRdShift 
ARMII_RegRdHiShift 
ARMII_RegRnShift 
ARMII_S_BitShift 
ARMII_W_BitShift 
ARMII_AM3_I_BitShift 
ARMII_D_BitShift 
ARMII_U_BitShift 
ARMII_P_BitShift 
ARMII_I_BitShift 
ARMII_CondShift 

Definition at line 291 of file ARMBaseInfo.h.

◆ ARM_ISB_InstSyncBOpt

Enumerator
ARM_ISB_RESERVED_0 
ARM_ISB_RESERVED_1 
ARM_ISB_RESERVED_2 
ARM_ISB_RESERVED_3 
ARM_ISB_RESERVED_4 
ARM_ISB_RESERVED_5 
ARM_ISB_RESERVED_6 
ARM_ISB_RESERVED_7 
ARM_ISB_RESERVED_8 
ARM_ISB_RESERVED_9 
ARM_ISB_RESERVED_10 
ARM_ISB_RESERVED_11 
ARM_ISB_RESERVED_12 
ARM_ISB_RESERVED_13 
ARM_ISB_RESERVED_14 
ARM_ISB_SY 

Definition at line 137 of file ARMBaseInfo.h.

◆ ARMCC_CondCodes

Enumerator
ARMCC_EQ 
ARMCC_NE 
ARMCC_HS 
ARMCC_LO 
ARMCC_MI 
ARMCC_PL 
ARMCC_VS 
ARMCC_VC 
ARMCC_HI 
ARMCC_LS 
ARMCC_GE 
ARMCC_LT 
ARMCC_GT 
ARMCC_LE 
ARMCC_AL 

Definition at line 34 of file ARMBaseInfo.h.

◆ ARMII_AddrMode

ARM Addressing Modes.

Enumerator
ARMII_AddrModeNone 
ARMII_AddrMode1 
ARMII_AddrMode2 
ARMII_AddrMode3 
ARMII_AddrMode4 
ARMII_AddrMode5 
ARMII_AddrMode6 
ARMII_AddrModeT1_1 
ARMII_AddrModeT1_2 
ARMII_AddrModeT1_4 
ARMII_AddrModeT1_s 
ARMII_AddrModeT2_i12 
ARMII_AddrModeT2_i8 
ARMII_AddrModeT2_so 
ARMII_AddrModeT2_pc 
ARMII_AddrModeT2_i8s4 
ARMII_AddrMode_i12 

Definition at line 205 of file ARMBaseInfo.h.

◆ ARMII_IndexMode

ARMII - This namespace holds all of the target specific flags that instruction info tracks.

ARM Index Modes

Enumerator
ARMII_IndexModeNone 
ARMII_IndexModePre 
ARMII_IndexModePost 
ARMII_IndexModeUpd 

Definition at line 197 of file ARMBaseInfo.h.

◆ ARMII_TOF

enum ARMII_TOF

Target Operand Flag enum.

Enumerator
ARMII_MO_NO_FLAG 
ARMII_MO_LO16 

MO_LO16 - On a symbol operand, this represents a relocation containing lower 16 bit of the address. Used only via movw instruction.

ARMII_MO_HI16 

MO_HI16 - On a symbol operand, this represents a relocation containing higher 16 bit of the address. Used only via movt instruction.

ARMII_MO_LO16_NONLAZY 

MO_LO16_NONLAZY - On a symbol operand "FOO", this represents a relocation containing lower 16 bit of the non-lazy-ptr indirect symbol, i.e. "FOO$non_lazy_ptr". Used only via movw instruction.

ARMII_MO_HI16_NONLAZY 

MO_HI16_NONLAZY - On a symbol operand "FOO", this represents a relocation containing lower 16 bit of the non-lazy-ptr indirect symbol, i.e. "FOO$non_lazy_ptr". Used only via movt instruction.

ARMII_MO_LO16_NONLAZY_PIC 

MO_LO16_NONLAZY_PIC - On a symbol operand "FOO", this represents a relocation containing lower 16 bit of the PC relative address of the non-lazy-ptr indirect symbol, i.e. "FOO$non_lazy_ptr - LABEL". Used only via movw instruction.

ARMII_MO_HI16_NONLAZY_PIC 

MO_HI16_NONLAZY_PIC - On a symbol operand "FOO", this represents a relocation containing lower 16 bit of the PC relative address of the non-lazy-ptr indirect symbol, i.e. "FOO$non_lazy_ptr - LABEL". Used only via movt instruction.

ARMII_MO_PLT 

MO_PLT - On a symbol operand, this represents an ELF PLT reference on a call operand.

Definition at line 249 of file ARMBaseInfo.h.

Function Documentation

◆ ARM_ISB_InstSyncBOptToString()

static const char* ARM_ISB_InstSyncBOptToString ( unsigned  val)
inlinestatic

Definition at line 156 of file ARMBaseInfo.h.

◆ ARM_MB_MemBOptToString()

static const char* ARM_MB_MemBOptToString ( unsigned  val,
bool  HasV8 
)
inlinestatic

Definition at line 114 of file ARMBaseInfo.h.

◆ ARM_PROC_IFlagsToString()

static const char* ARM_PROC_IFlagsToString ( unsigned  val)
inlinestatic

Definition at line 95 of file ARMBaseInfo.h.

◆ ARM_PROC_IModToString()

static const char* ARM_PROC_IModToString ( unsigned  val)
inlinestatic

Definition at line 105 of file ARMBaseInfo.h.

◆ ARMCC_ARMCondCodeToString()

static const char* ARMCC_ARMCondCodeToString ( ARMCC_CondCodes  CC)
inlinestatic

Definition at line 73 of file ARMBaseInfo.h.

◆ ARMCC_getOppositeCondition()

static ARMCC_CondCodes ARMCC_getOppositeCondition ( ARMCC_CondCodes  CC)
inlinestatic

Definition at line 52 of file ARMBaseInfo.h.

◆ ARMII_AddrModeToString()

static const char* ARMII_AddrModeToString ( ARMII_AddrMode  addrmode)
inlinestatic

Definition at line 225 of file ARMBaseInfo.h.

◆ isARMLowRegister()

static bool isARMLowRegister ( unsigned  Reg)
inlinestatic

isARMLowRegister - Returns true if the register is a low register (r0-r7).

Definition at line 181 of file ARMBaseInfo.h.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:03