[all-commits] [llvm/llvm-project] 5af9e6: [JITLink][AArch46] Update aarch64 pointer jump stu...
lhames via All-commits
all-commits at lists.llvm.org
Mon Oct 31 08:41:34 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 5af9e648ae10c50d94ab169f65907e12f210ec99
https://github.com/llvm/llvm-project/commit/5af9e648ae10c50d94ab169f65907e12f210ec99
Author: Lang Hames <lhames at gmail.com>
Date: 2022-10-31 (Mon, 31 Oct 2022)
Changed paths:
M llvm/include/llvm/ExecutionEngine/JITLink/aarch64.h
M llvm/lib/ExecutionEngine/JITLink/aarch64.cpp
Log Message:
-----------
[JITLink][AArch46] Update aarch64 pointer jump stub sequence, add utilities.
Updates the aarch64 pointer jump stub sequence to:
ADRP x16, <ptr>@page21
LDR x16, [x16, <ptr>@pageoff12]
BR x16
from:
LDR x16, <ptr>@ldrimm19
BR x16
The old sequence can only reference pointers within +/-1Mb, which may not be
enough for large object files. The new sequence can reach pointers within
+/-4Gb. (A future pre-fixup-pass could apply range-based optimizations to
turn this into an ldr-br-nop sequence.)
Also adds createPointerJumpStubBlock and createAnonymousPointerJumpStub
utilities along the same lines as their x86-64 counterparts.
The PLTTableManager is updated to use the new utility functions.
More information about the All-commits
mailing list