aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/ELFObjectFile.cpp
diff options
context:
space:
mode:
authorVladislav Dzhidzhoev <vdzhidzhoev@accesssoftek.com>2025-03-26 20:18:23 +0100
committerGitHub <noreply@github.com>2025-03-26 20:18:23 +0100
commitbcad0501062325457cc9dae4b8b083e3bd2a04e3 (patch)
tree14eff0ee8d628a93d314ed7117966b59fc803e55 /llvm/lib/Object/ELFObjectFile.cpp
parent9b7a7e4b9e44a73978c374f95f90332620f87ce8 (diff)
downloadllvm-bcad0501062325457cc9dae4b8b083e3bd2a04e3.zip
llvm-bcad0501062325457cc9dae4b8b083e3bd2a04e3.tar.gz
llvm-bcad0501062325457cc9dae4b8b083e3bd2a04e3.tar.bz2
[llvm-objdump][ARM] Find ELF file PLT entries for arm, thumb (#130764)
This implements arm, armeb, thumb, thumbeb PLT entries parsing support in ELF for llvm-objdump. Implementation is similar to AArch64MCInstrAnalysis::findPltEntries. PLT entry signatures are based on LLD code for PLT generation (ARM::writePlt). llvm-objdump tests are produced from lld/test/ELF/arm-plt-reloc.s, lld/test/ELF/armv8-thumb-plt-reloc.s.
Diffstat (limited to 'llvm/lib/Object/ELFObjectFile.cpp')
-rw-r--r--llvm/lib/Object/ELFObjectFile.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Object/ELFObjectFile.cpp b/llvm/lib/Object/ELFObjectFile.cpp
index 21cb77e..bf6d519 100644
--- a/llvm/lib/Object/ELFObjectFile.cpp
+++ b/llvm/lib/Object/ELFObjectFile.cpp
@@ -799,6 +799,12 @@ ELFObjectFileBase::getPltEntries(const MCSubtargetInfo &STI) const {
case Triple::aarch64_be:
JumpSlotReloc = ELF::R_AARCH64_JUMP_SLOT;
break;
+ case Triple::arm:
+ case Triple::armeb:
+ case Triple::thumb:
+ case Triple::thumbeb:
+ JumpSlotReloc = ELF::R_ARM_JUMP_SLOT;
+ break;
case Triple::hexagon:
JumpSlotReloc = ELF::R_HEX_JMP_SLOT;
GlobDatReloc = ELF::R_HEX_GLOB_DAT;