diff options
author | Vladislav Dzhidzhoev <vdzhidzhoev@accesssoftek.com> | 2025-03-26 20:18:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-26 20:18:23 +0100 |
commit | bcad0501062325457cc9dae4b8b083e3bd2a04e3 (patch) | |
tree | 14eff0ee8d628a93d314ed7117966b59fc803e55 /llvm/lib/Object/ELFObjectFile.cpp | |
parent | 9b7a7e4b9e44a73978c374f95f90332620f87ce8 (diff) | |
download | llvm-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.cpp | 6 |
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; |