LLVM 22.0.0git
aarch32.h File Reference

Go to the source code of this file.

Classes

 JITLink sub-arch configuration for Arm CPU models. More...
 Immutable pair of halfwords, Hi and Lo, with overflow check. More...
 FixupInfo base class is required for dynamic lookups. More...
 FixupInfo checks for Arm edge kinds work on 32-bit words. More...
 FixupInfo check for Thumb32 edge kinds work on a pair of 16-bit halfwords. More...
 Collection of named constants per fixup kind. More...
 Populate a Global Offset Table from edges that request it. More...
 Stubs builder emits non-position-independent Arm stubs for pre-v7 CPUs. More...
 Stubs builder for v7 emits non-position-independent Arm and Thumb stubs. More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

Enumerations

enum  llvm::jitlink::aarch32::EdgeKind_aarch32 : Edge::Kind {
  llvm::jitlink::aarch32::FirstDataRelocation = Edge::FirstRelocation , llvm::jitlink::aarch32::Data_Delta32 = FirstDataRelocation , llvm::jitlink::aarch32::Data_Pointer32 , llvm::jitlink::aarch32::Data_PRel31 ,
  llvm::jitlink::aarch32::Data_RequestGOTAndTransformToDelta32 , llvm::jitlink::aarch32::LastDataRelocation = Data_RequestGOTAndTransformToDelta32 , llvm::jitlink::aarch32::FirstArmRelocation , llvm::jitlink::aarch32::Arm_Call = FirstArmRelocation ,
  llvm::jitlink::aarch32::Arm_Jump24 , llvm::jitlink::aarch32::Arm_MovwAbsNC , llvm::jitlink::aarch32::Arm_MovtAbs , llvm::jitlink::aarch32::LastArmRelocation = Arm_MovtAbs ,
  llvm::jitlink::aarch32::FirstThumbRelocation , llvm::jitlink::aarch32::Thumb_Call = FirstThumbRelocation , llvm::jitlink::aarch32::Thumb_Jump24 , llvm::jitlink::aarch32::Thumb_MovwAbsNC ,
  llvm::jitlink::aarch32::Thumb_MovtAbs , llvm::jitlink::aarch32::Thumb_MovwPrelNC , llvm::jitlink::aarch32::Thumb_MovtPrel , llvm::jitlink::aarch32::LastThumbRelocation = Thumb_MovtPrel ,
  llvm::jitlink::aarch32::None , llvm::jitlink::aarch32::LastRelocation = None
}
 JITLink-internal AArch32 fixup kinds. More...
enum  llvm::jitlink::aarch32::TargetFlags_aarch32 : TargetFlagsType { llvm::jitlink::aarch32::ThumbSymbol = 1 << 0 }
 Flags enum for AArch32-specific symbol properties. More...
enum class  llvm::jitlink::aarch32::StubsFlavor { llvm::jitlink::aarch32::Undefined = 0 , llvm::jitlink::aarch32::pre_v7 , llvm::jitlink::aarch32::v7 }
 AArch32 uses stubs for a number of purposes, like branch range extension or interworking between Arm and Thumb instruction subsets. More...

Functions

LLVM_ABI bool llvm::jitlink::aarch32::hasTargetFlags (Symbol &Sym, TargetFlagsType Flags)
 Check whether the given target flags are set for this Symbol.
LLVM_ABI const charllvm::jitlink::aarch32::getCPUArchName (ARMBuildAttrs::CPUArch K)
 Human-readable name for a given CPU architecture kind.
LLVM_ABI const charllvm::jitlink::aarch32::getEdgeKindName (Edge::Kind K)
 Get a human-readable name for the given AArch32 edge kind.
ArmConfig llvm::jitlink::aarch32::getArmConfigForCPUArch (ARMBuildAttrs::CPUArch CPUArch)
 Obtain the sub-arch configuration for a given Arm CPU model.
LLVM_ABI Expected< int64_t > llvm::jitlink::aarch32::readAddendData (LinkGraph &G, Block &B, Edge::OffsetT Offset, Edge::Kind Kind)
 Helper function to read the initial addend for Data-class relocations.
LLVM_ABI Expected< int64_t > llvm::jitlink::aarch32::readAddendArm (LinkGraph &G, Block &B, Edge::OffsetT Offset, Edge::Kind Kind)
 Helper function to read the initial addend for Arm-class relocations.
LLVM_ABI Expected< int64_t > llvm::jitlink::aarch32::readAddendThumb (LinkGraph &G, Block &B, Edge::OffsetT Offset, Edge::Kind Kind, const ArmConfig &ArmCfg)
 Helper function to read the initial addend for Thumb-class relocations.
Expected< int64_t > llvm::jitlink::aarch32::readAddend (LinkGraph &G, Block &B, Edge::OffsetT Offset, Edge::Kind Kind, const ArmConfig &ArmCfg)
 Read the initial addend for a REL-type relocation.
LLVM_ABI Error llvm::jitlink::aarch32::applyFixupData (LinkGraph &G, Block &B, const Edge &E)
 Helper function to apply the fixup for Data-class relocations.
LLVM_ABI Error llvm::jitlink::aarch32::applyFixupArm (LinkGraph &G, Block &B, const Edge &E)
 Helper function to apply the fixup for Arm-class relocations.
LLVM_ABI Error llvm::jitlink::aarch32::applyFixupThumb (LinkGraph &G, Block &B, const Edge &E, const ArmConfig &ArmCfg)
 Helper function to apply the fixup for Thumb-class relocations.
Error llvm::jitlink::aarch32::applyFixup (LinkGraph &G, Block &B, const Edge &E, const ArmConfig &ArmCfg)
 Apply fixup expression for edge to block content.