Module BCHARMTypes

Principal type definitions for bchlibarm32.

Operand components

type cps_effect_t =
  1. | Interrupt_Enable
  2. | Interrupt_Disable
  3. | Interrupt_NoChange

Change processor status

type interrupt_flags_t =
  1. | IFlag_A
  2. | IFlag_I
  3. | IFlag_F
  4. | IFlag_AI
  5. | IFlag_AF
  6. | IFlag_IF
  7. | IFlag_AIF
  8. | IFlag_None
type shift_rotate_type_t =
  1. | SRType_LSL
  2. | SRType_LSR
  3. | SRType_ASR
  4. | SRType_ROR
  5. | SRType_RRX
type dmb_option_t =
  1. | FullSystemRW
  2. | FullSystemW
  3. | InnerShareableRW
  4. | InnerShareableW
  5. | NonShareableRW
  6. | NonShareableW
  7. | OuterShareableRW
  8. | OuterShareableW
type vfp_datatype_t =
  1. | VfpNone
  2. | VfpSize of int
  3. | VfpFloat of int
  4. | VfpInt of int
  5. | VfpPolynomial of int
  6. | VfpSignedInt of int
  7. | VfpUnsignedInt of int
type register_shift_rotate_t =
  1. | ARMImmSRT of shift_rotate_type_t * int
  2. | ARMRegSRT of shift_rotate_type_t * BCHLibTypes.arm_reg_t
type arm_memory_offset_t =
  1. | ARMImmOffset of int
  2. | ARMIndexOffset of BCHLibTypes.arm_reg_t * int
  3. | ARMShiftedIndexOffset of BCHLibTypes.arm_reg_t * register_shift_rotate_t * int
type arm_simd_writeback_t =
  1. | SIMDNoWriteback
  2. | SIMDBytesTransferred of int
  3. | SIMDAddressOffsetRegister of BCHLibTypes.arm_reg_t
type arm_operand_kind_t =
  1. | ARMDMBOption of dmb_option_t
  2. | ARMCPSEffect of cps_effect_t
  3. | ARMInterruptFlags of interrupt_flags_t
  4. | ARMReg of BCHLibTypes.arm_reg_t
  5. | ARMDoubleReg of BCHLibTypes.arm_reg_t * BCHLibTypes.arm_reg_t
  6. | ARMWritebackReg of bool * BCHLibTypes.arm_reg_t * int option
  7. | ARMSpecialReg of BCHLibTypes.arm_special_reg_t
  8. | ARMExtensionReg of BCHLibTypes.arm_extension_register_t
  9. | ARMDoubleExtensionReg of BCHLibTypes.arm_extension_register_t * BCHLibTypes.arm_extension_register_t
  10. | ARMExtensionRegElement of BCHLibTypes.arm_extension_register_element_t
  11. | ARMRegList of BCHLibTypes.arm_reg_t list
  12. | ARMExtensionRegList of BCHLibTypes.arm_extension_register_t list
  13. | ARMShiftedReg of BCHLibTypes.arm_reg_t * register_shift_rotate_t
  14. | ARMRegBitSequence of BCHLibTypes.arm_reg_t * int * int
  15. | ARMImmediate of BCHLibTypes.immediate_int
  16. | ARMFPConstant of float
  17. | ARMAbsolute of BCHLibTypes.doubleword_int
  18. | ARMLiteralAddress of BCHLibTypes.doubleword_int
  19. | ARMMemMultiple of BCHLibTypes.arm_reg_t * int * int * int
  20. | ARMOffsetAddress of BCHLibTypes.arm_reg_t * int * arm_memory_offset_t * bool * bool * bool * int
  21. | ARMSIMDAddress of BCHLibTypes.arm_reg_t * int * arm_simd_writeback_t
  22. | ARMSIMDList of arm_simd_list_element_t list
type arm_operand_mode_t =
  1. | RD
  2. | WR
  3. | RW
class type arm_operand_int = object ... end

Assembly opcodes

type not_code_t =
  1. | JumpTable of BCHLibTypes.jumptable_int
  2. | DataBlock of BCHLibTypes.data_block_int
type arm_opcode_cc_t =
  1. | ACCEqual
  2. | ACCNotEqual
  3. | ACCCarrySet
  4. | ACCCarryClear
  5. | ACCNegative
  6. | ACCNonNegative
  7. | ACCOverflow
  8. | ACCNoOverflow
  9. | ACCUnsignedHigher
  10. | ACCNotUnsignedHigher
  11. | ACCSignedGE
  12. | ACCSignedLT
  13. | ACCSignedGT
  14. | ACCSignedLE
  15. | ACCAlways
  16. | ACCUnconditional

Opcode condition codes

type arm_opc_encoding_type_t =
  1. | A1
  2. | A2
  3. | A3
  4. | A4
  5. | T1
  6. | T2
  7. | T3
  8. | T4
type arm_opcode_encoding_t = {
  1. opc_encoding : arm_opc_encoding_type_t;
  2. opc_encoding_group : string option;
}
type arm_opcode_t =
  1. | Add of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  2. | AddCarry of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  3. | Adr of arm_opcode_cc_t * arm_operand_int * arm_operand_int
  4. | AESInverseMixColumns of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  5. | AESMixColumns of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  6. | AESSingleRoundDecryption of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  7. | AESSingleRoundEncryption of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  8. | ArithmeticShiftRight of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  9. | BitFieldClear of arm_opcode_cc_t * arm_operand_int * int * int * int
  10. | BitFieldInsert of arm_opcode_cc_t * arm_operand_int * arm_operand_int * int * int * int
  11. | BitwiseAnd of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  12. | BitwiseBitClear of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  13. | BitwiseExclusiveOr of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  14. | BitwiseNot of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  15. | BitwiseOr of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  16. | BitwiseOrNot of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  17. | Branch of arm_opcode_cc_t * arm_operand_int * bool
  18. | BranchExchange of arm_opcode_cc_t * arm_operand_int
  19. | BranchLinkExchange of arm_opcode_cc_t * arm_operand_int
  20. | Breakpoint of arm_operand_int
  21. | ByteReverseWord of arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  22. | ByteReversePackedHalfword of arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  23. | ChangeProcessorState of arm_opcode_cc_t * arm_operand_int * arm_operand_int * int option * bool
  24. | Compare of arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  25. | CompareBranchNonzero of arm_operand_int * arm_operand_int
  26. | CompareBranchZero of arm_operand_int * arm_operand_int
  27. | CompareNegative of arm_opcode_cc_t * arm_operand_int * arm_operand_int
  28. | CountLeadingZeros of arm_opcode_cc_t * arm_operand_int * arm_operand_int
  29. | DataMemoryBarrier of arm_opcode_cc_t * arm_operand_int
  30. | FLoadMultipleIncrementAfter of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  31. | FStoreMultipleIncrementAfter of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  32. | IfThen of arm_opcode_cc_t * string
  33. | LoadCoprocessor of bool * bool * arm_opcode_cc_t * int * int * arm_operand_int * int option
  34. | LoadMultipleDecrementAfter of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  35. | LoadMultipleDecrementBefore of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  36. | LoadMultipleIncrementAfter of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  37. | LoadMultipleIncrementBefore of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  38. | LoadRegister of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * bool
  39. | LoadRegisterByte of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * bool
  40. | LoadRegisterDual of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  41. | LoadRegisterExclusive of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  42. | LoadRegisterHalfword of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * bool
  43. | LoadRegisterSignedByte of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * bool
  44. | LoadRegisterSignedHalfword of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * bool
  45. | LogicalShiftLeft of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  46. | LogicalShiftRight of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  47. | Move of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool * bool
  48. | MoveFromSpecialRegister of arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  49. | MoveRegisterCoprocessor of arm_opcode_cc_t * int * int * arm_operand_int * int * int * int
  50. | MoveToCoprocessor of arm_opcode_cc_t * int * int * arm_operand_int * int * int * int
  51. | MoveTop of arm_opcode_cc_t * arm_operand_int * arm_operand_int
  52. | MoveToSpecialRegister of arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  53. | MoveTwoRegisterCoprocessor of arm_opcode_cc_t * int * int * arm_operand_int * arm_operand_int * int
  54. | Multiply of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  55. | MultiplyAccumulate of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  56. | MultiplySubtract of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  57. | Pop of arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  58. | PreloadData of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int
  59. | Push of arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  60. | ReverseBits of arm_opcode_cc_t * arm_operand_int * arm_operand_int
  61. | ReverseSubtract of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  62. | ReverseSubtractCarry of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  63. | RotateRight of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  64. | RotateRightExtend of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int
  65. | SaturatingAdd of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  66. | SaturatingDoubleAdd of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  67. | SaturatingDoubleSubtract of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  68. | SaturatingSubtract of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  69. | SelectBytes of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  70. | SHA1FixedRotate of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  71. | SHA1HashUpdateChoose of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  72. | SHA1HashUpdateMajority of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  73. | SHA1HashUpdateParity of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  74. | SHA1ScheduleUpdate0 of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  75. | SHA1ScheduleUpdate1 of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  76. | SHA256HashUpdatePart1 of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  77. | SHA256HashUpdatePart2 of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  78. | SHA256ScheduleUpdate0 of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  79. | SHA256ScheduleUpdate1 of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  80. | SignedBitFieldExtract of arm_opcode_cc_t * arm_operand_int * arm_operand_int
  81. | SignedDivide of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  82. | SignedExtendByte of arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  83. | SignedExtendHalfword of arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  84. | SignedMostSignificantWordMultiply of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * int
  85. | SignedMostSignificantWordMultiplyAccumulate of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * int
  86. | SignedMultiplyAccumulateBB of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  87. | SignedMultiplyAccumulateBT of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  88. | SignedMultiplyAccumulateTB of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  89. | SignedMultiplyAccumulateTT of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  90. | SignedMultiplyAccumulateLong of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  91. | SignedMultiplyAccumulateWordB of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  92. | SignedMultiplyAccumulateWordT of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  93. | SignedMultiplyHalfwordsBB of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  94. | SignedMultiplyHalfwordsBT of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  95. | SignedMultiplyHalfwordsTB of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  96. | SignedMultiplyHalfwordsTT of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  97. | SignedMultiplyLong of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  98. | SignedMultiplyWordB of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  99. | SignedMultiplyWordT of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  100. | StoreCoprocessor of bool * bool * arm_opcode_cc_t * int * int * arm_operand_int * int option
  101. | StoreMultipleDecrementAfter of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  102. | StoreMultipleDecrementBefore of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  103. | StoreMultipleIncrementAfter of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  104. | StoreMultipleIncrementBefore of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  105. | StoreRegister of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * bool
  106. | StoreRegisterByte of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * bool
  107. | StoreRegisterDual of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  108. | StoreRegisterExclusive of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  109. | StoreRegisterHalfword of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * bool
  110. | Subtract of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool * bool
  111. | SubtractCarry of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * bool
  112. | Swap of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  113. | SwapByte of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  114. | TableBranchByte of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  115. | TableBranchHalfword of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  116. | Test of arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  117. | TestEquivalence of arm_opcode_cc_t * arm_operand_int * arm_operand_int
  118. | UnsignedAdd8 of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  119. | UnsignedBitFieldExtract of arm_opcode_cc_t * arm_operand_int * arm_operand_int
  120. | UnsignedDivide of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  121. | UnsignedExtendAddByte of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  122. | UnsignedExtendAddHalfword of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  123. | UnsignedExtendByte of arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  124. | UnsignedExtendHalfword of arm_opcode_cc_t * arm_operand_int * arm_operand_int * bool
  125. | UnsignedMultiplyAccumulateLong of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  126. | UnsignedMultiplyLong of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  127. | UnsignedSaturate of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  128. | UnsignedSaturatingSubtract8 of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  129. | VectorAbsolute of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  130. | VectorAdd of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  131. | VectorAddLong of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  132. | VectorAddWide of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  133. | VectorBitwiseAnd of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  134. | VectorBitwiseBitClear of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  135. | VectorBitwiseExclusiveOr of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  136. | VectorBitwiseNot of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  137. | VectorBitwiseOr of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  138. | VectorBitwiseOrNot of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  139. | VectorBitwiseSelect of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  140. | VCompare of bool * arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  141. | VectorConvert of bool * bool * arm_opcode_cc_t * vfp_datatype_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  142. | VDivide of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  143. | VectorDuplicate of arm_opcode_cc_t * vfp_datatype_t * int * int * arm_operand_int * arm_operand_int
  144. | VectorExtract of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  145. | VectorFusedMultiplyAccumulate of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  146. | VectorLoadMultipleIncrementAfter of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  147. | VectorLoadOne of bool * arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  148. | VectorLoadFour of bool * arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  149. | VLoadRegister of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  150. | VectorMoveDS of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  151. | VectorMoveDDSS of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  152. | VectorMoveDSS of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  153. | VectorMoveDDS of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  154. | VectorMoveLong of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  155. | VectorMoveNarrow of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  156. | VMoveRegisterStatus of arm_opcode_cc_t * arm_operand_int * arm_operand_int
  157. | VMoveToSystemRegister of arm_opcode_cc_t * arm_operand_int * arm_operand_int
  158. | VectorMultiply of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  159. | VectorMultiplyAccumulate of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  160. | VectorMultiplyAccumulateLong of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  161. | VectorMultiplyLong of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  162. | VectorMultiplySubtract of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  163. | VectorNegate of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  164. | VectorNegateMultiply of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  165. | VectorNegateMultiplyAccumulate of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  166. | VectorNegateMultiplySubtract of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  167. | VectorPop of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  168. | VectorPush of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  169. | VectorReverseDoublewords of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  170. | VectorReverseHalfwords of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  171. | VectorReverseWords of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  172. | VectorRoundingHalvingAdd of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  173. | VectorRoundingShiftRightAccumulate of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  174. | VectorShiftLeft of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  175. | VectorShiftLeftInsert of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  176. | VectorShiftRight of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  177. | VectorShiftRightInsert of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  178. | VectorShiftRightAccumulate of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  179. | VectorShiftRightNarrow of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  180. | VStoreRegister of arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  181. | VectorStoreMultipleDecrementBefore of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  182. | VectorStoreMultipleIncrementAfter of bool * arm_opcode_cc_t * arm_operand_int * arm_operand_int * arm_operand_int
  183. | VectorStoreOne of bool * arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  184. | VectorStoreTwo of bool * arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  185. | VectorStoreFour of bool * arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int * arm_operand_int
  186. | VectorSubtract of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  187. | VectorTableLookup of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int * arm_operand_int
  188. | VectorTranspose of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  189. | VectorZip of arm_opcode_cc_t * vfp_datatype_t * arm_operand_int * arm_operand_int
  190. | SupervisorCall of arm_opcode_cc_t * arm_operand_int
  191. | OpInvalid
  192. | PermanentlyUndefined of arm_opcode_cc_t * arm_operand_int
  193. | NoOperation of arm_opcode_cc_t
  194. | NotRecognized of string * BCHLibTypes.doubleword_int
  195. | OpcodeUndefined of string
  196. | OpcodeUnpredictable of string
  197. | NotCode of not_code_t option

Opcode Dictionary

class type arm_dictionary_int = object ... end

Assembly code

class type arm_assembly_instruction_int = object ... end
type arm_assembly_instruction_result = arm_assembly_instruction_int CHTraceResult.traceresult
type thumb_it_sequence_kind_t =
  1. | ITPredicateAssignment of bool * arm_operand_int
    (*

    in inverse, dstop, inverse indicates whether the predicate itself or its inverse is to be assigned; dstop is the destination operand for the predicate assignment.

    The destination operand dstop is assumed to be a register.

    *)
class type thumb_it_sequence_int = object ... end
class type arm_jumptable_int = object ... end
class type ldm_stm_sequence_int = object ... end
type arm_aggregate_kind_t =
  1. | ARMJumptable of arm_jumptable_int
  2. | ThumbITSequence of thumb_it_sequence_int
  3. | LDMSTMSequence of ldm_stm_sequence_int
  4. | BXCall of arm_assembly_instruction_int * arm_assembly_instruction_int
class type arm_instruction_aggregate_int = object ... end
type callsite_result_t = int * int * int

Represents the number of callsites that, resp., support, contradict, and are neutral about on the predicate.

class type arm_callsite_record_int = object ... end
class type arm_callsites_record_int = object ... end
class type arm_callsites_records_int = object ... end
class type arm_assembly_instructions_int = object ... end
class type arm_assembly_block_int = object ... end
class type arm_assembly_function_int = object ... end
class type arm_assembly_functions_int = object ... end

CHIF translation

class type arm_code_pc_int = object ... end
class type arm_chif_system_int = object ... end

Analysis results

class type arm_opcode_dictionary_int = object ... end
class type arm_fn_type_constraints_int = object ... end
class type arm_analysis_results_int = object ... end

Test support

class type testsupport_int = object ... end

Support for servicing data to unit tests.