[llvm] [JITLink][AArch32] Implement Armv5 ldr-pc stubs and use them for all pre-v7 targets (PR #79082)
Stefan Gränitz via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 23 03:16:34 PST 2024
================
@@ -725,6 +725,60 @@ bool GOTBuilder::visitEdge(LinkGraph &G, Block *B, Edge &E) {
return true;
}
+/// Create a new node in the link-graph for the given stub template.
+template <size_t Size>
+static Block &allocStub(LinkGraph &G, Section &S, const uint8_t (&Code)[Size]) {
+ constexpr uint64_t Alignment = 4;
+ ArrayRef<char> Template(reinterpret_cast<const char *>(Code), Size);
+ return G.createContentBlock(S, Template, orc::ExecutorAddr(), Alignment, 0);
+}
+
+const uint8_t Armv5LongLdrPc[] = {
+ 0x04, 0xf0, 0x1f, 0xe5, // ldr pc, [pc,#-4] ; L1
+ 0x00, 0x00, 0x00, 0x00, // L1: .word S
+};
+
+ // TODO: There is only ARM far stub now. We should add the Thumb stub,
----------------
weliveindetail wrote:
This comment was a leftover. Yes, let me implement it!
https://github.com/llvm/llvm-project/pull/79082
More information about the llvm-commits
mailing list