Lines Matching full:aarch32
9 // ELF/aarch32 jit-link implementation.
17 #include "llvm/ExecutionEngine/JITLink/aarch32.h"
34 Expected<aarch32::EdgeKind_aarch32>
35 getJITLinkEdgeKind(uint32_t ELFType, const aarch32::ArmConfig &ArmCfg) { in getJITLinkEdgeKind()
38 return aarch32::Data_Pointer32; in getJITLinkEdgeKind()
40 return aarch32::Data_RequestGOTAndTransformToDelta32; in getJITLinkEdgeKind()
42 return aarch32::Data_Delta32; in getJITLinkEdgeKind()
44 return aarch32::Arm_Call; in getJITLinkEdgeKind()
46 return aarch32::Arm_Jump24; in getJITLinkEdgeKind()
48 return aarch32::Arm_MovwAbsNC; in getJITLinkEdgeKind()
50 return aarch32::Arm_MovtAbs; in getJITLinkEdgeKind()
52 return aarch32::None; in getJITLinkEdgeKind()
54 return aarch32::Data_PRel31; in getJITLinkEdgeKind()
56 return (ArmCfg.Target1Rel) ? aarch32::Data_Delta32 in getJITLinkEdgeKind()
57 : aarch32::Data_Pointer32; in getJITLinkEdgeKind()
59 return aarch32::Thumb_Call; in getJITLinkEdgeKind()
61 return aarch32::Thumb_Jump24; in getJITLinkEdgeKind()
63 return aarch32::Thumb_MovwAbsNC; in getJITLinkEdgeKind()
65 return aarch32::Thumb_MovtAbs; in getJITLinkEdgeKind()
67 return aarch32::Thumb_MovwPrelNC; in getJITLinkEdgeKind()
69 return aarch32::Thumb_MovtPrel; in getJITLinkEdgeKind()
73 "Unsupported aarch32 relocation " + formatv("{0:d}: ", ELFType) + in getJITLinkEdgeKind()
79 switch (static_cast<aarch32::EdgeKind_aarch32>(Kind)) { in getELFRelocationType()
80 case aarch32::Data_Delta32: in getELFRelocationType()
82 case aarch32::Data_Pointer32: in getELFRelocationType()
84 case aarch32::Data_PRel31: in getELFRelocationType()
86 case aarch32::Data_RequestGOTAndTransformToDelta32: in getELFRelocationType()
88 case aarch32::Arm_Call: in getELFRelocationType()
90 case aarch32::Arm_Jump24: in getELFRelocationType()
92 case aarch32::Arm_MovwAbsNC: in getELFRelocationType()
94 case aarch32::Arm_MovtAbs: in getELFRelocationType()
96 case aarch32::Thumb_Call: in getELFRelocationType()
98 case aarch32::Thumb_Jump24: in getELFRelocationType()
100 case aarch32::Thumb_MovwAbsNC: in getELFRelocationType()
102 case aarch32::Thumb_MovtAbs: in getELFRelocationType()
104 case aarch32::Thumb_MovwPrelNC: in getELFRelocationType()
106 case aarch32::Thumb_MovtPrel: in getELFRelocationType()
108 case aarch32::None: in getELFRelocationType()
112 return make_error<JITLinkError>(formatv("Invalid aarch32 edge {0:d}: ", in getELFRelocationType()
116 /// Get a human-readable name for the given ELF AArch32 edge kind.
119 return aarch32::getEdgeKindName(R); in getELFAArch32EdgeKindName()
128 aarch32::ArmConfig ArmCfg) in ELFJITLinker_aarch32()
133 aarch32::ArmConfig ArmCfg;
136 return aarch32::applyFixup(G, B, E, ArmCfg); in applyFixup()
176 Expected<aarch32::EdgeKind_aarch32> Kind = getJITLinkEdgeKind(Type, ArmCfg); in addSingleRelRelocation()
184 aarch32::readAddend(*Base::G, BlockToFix, Offset, *Kind, ArmCfg); in addSingleRelRelocation()
199 aarch32::ArmConfig ArmCfg;
207 return aarch32::ThumbSymbol; in makeTargetFlags()
224 aarch32::ArmConfig ArmCfg) in ELFLinkGraphBuilder_aarch32()
236 aarch32::GOTBuilder GOT; in buildTables_ELF_aarch32()
257 // Find out what exact AArch32 instruction set and features we target. in createLinkGraphFromELFObject_aarch32()
268 aarch32::ArmConfig ArmCfg = aarch32::getArmConfigForCPUArch(Arch); in createLinkGraphFromELFObject_aarch32()
290 "Failed to build ELF/aarch32 link graph: Invalid target triple " + in createLinkGraphFromELFObject_aarch32()
302 aarch32::ArmConfig ArmCfg = aarch32::getArmConfigForCPUArch(CPU); in link_ELF_aarch32()
313 case aarch32::StubsFlavor::pre_v7: in link_ELF_aarch32()
315 buildTables_ELF_aarch32<aarch32::StubsManager_prev7>); in link_ELF_aarch32()
317 case aarch32::StubsFlavor::v7: in link_ELF_aarch32()
319 buildTables_ELF_aarch32<aarch32::StubsManager_v7>); in link_ELF_aarch32()
321 case aarch32::StubsFlavor::Undefined: in link_ELF_aarch32()