LLVM 20.0.0git
Classes | Namespaces | Enumerations | Functions
aarch32.h File Reference
#include "TableManager.h"
#include "llvm/ExecutionEngine/JITLink/JITLink.h"
#include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
#include "llvm/Support/ARMBuildAttributes.h"
#include "llvm/Support/Error.h"

Go to the source code of this file.

Classes

struct  llvm::jitlink::aarch32::ArmConfig
 JITLink sub-arch configuration for Arm CPU models. More...
 
struct  llvm::jitlink::aarch32::HalfWords
 Immutable pair of halfwords, Hi and Lo, with overflow check. More...
 
struct  llvm::jitlink::aarch32::FixupInfoBase
 FixupInfo base class is required for dynamic lookups. More...
 
struct  llvm::jitlink::aarch32::FixupInfoArm
 FixupInfo checks for Arm edge kinds work on 32-bit words. More...
 
struct  llvm::jitlink::aarch32::FixupInfoThumb
 FixupInfo check for Thumb32 edge kinds work on a pair of 16-bit halfwords. More...
 
struct  llvm::jitlink::aarch32::FixupInfo< Kind >
 Collection of named constants per fixup kind. More...
 
struct  llvm::jitlink::aarch32::FixupInfoArmBranch
 
struct  llvm::jitlink::aarch32::FixupInfo< Arm_Jump24 >
 
struct  llvm::jitlink::aarch32::FixupInfo< Arm_Call >
 
struct  llvm::jitlink::aarch32::FixupInfoArmMov
 
struct  llvm::jitlink::aarch32::FixupInfo< Arm_MovtAbs >
 
struct  llvm::jitlink::aarch32::FixupInfo< Arm_MovwAbsNC >
 
struct  llvm::jitlink::aarch32::FixupInfo< Thumb_Jump24 >
 
struct  llvm::jitlink::aarch32::FixupInfo< Thumb_Call >
 
struct  llvm::jitlink::aarch32::FixupInfoThumbMov
 
struct  llvm::jitlink::aarch32::FixupInfo< Thumb_MovtAbs >
 
struct  llvm::jitlink::aarch32::FixupInfo< Thumb_MovtPrel >
 
struct  llvm::jitlink::aarch32::FixupInfo< Thumb_MovwAbsNC >
 
struct  llvm::jitlink::aarch32::FixupInfo< Thumb_MovwPrelNC >
 
class  llvm::jitlink::aarch32::GOTBuilder
 Populate a Global Offset Table from edges that request it. More...
 
class  llvm::jitlink::aarch32::StubsManager_prev7
 Stubs builder emits non-position-independent Arm stubs for pre-v7 CPUs. More...
 
class  llvm::jitlink::aarch32::StubsManager_v7
 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

bool llvm::jitlink::aarch32::hasTargetFlags (Symbol &Sym, TargetFlagsType Flags)
 Check whether the given target flags are set for this Symbol.
 
const charllvm::jitlink::aarch32::getCPUArchName (ARMBuildAttrs::CPUArch K)
 Human-readable name for a given CPU architecture kind.
 
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.
 
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.
 
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.
 
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.
 
Error llvm::jitlink::aarch32::applyFixupData (LinkGraph &G, Block &B, const Edge &E)
 Helper function to apply the fixup for Data-class relocations.
 
Error llvm::jitlink::aarch32::applyFixupArm (LinkGraph &G, Block &B, const Edge &E)
 Helper function to apply the fixup for Arm-class relocations.
 
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.