diff options
author | Simon Atanasyan <simon@atanasyan.com> | 2014-01-17 21:18:37 +0000 |
---|---|---|
committer | Simon Atanasyan <simon@atanasyan.com> | 2014-01-17 21:18:37 +0000 |
commit | 362bdc125e94b32b852b134dba9d67ad3075c6fd (patch) | |
tree | 91c3ac42f475b6f9877dd140ad24e7c604d33422 /lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp | |
parent | 66338224be6072b9af6f87aee0e3078076bfb4e3 (diff) | |
download | bcm5719-llvm-362bdc125e94b32b852b134dba9d67ad3075c6fd.tar.gz bcm5719-llvm-362bdc125e94b32b852b134dba9d67ad3075c6fd.zip |
[Mips] Implement .plt and .got.plt section creation.
llvm-svn: 199516
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp')
-rw-r--r-- | lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp b/lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp index c83b891b58c..280943720f8 100644 --- a/lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp +++ b/lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp @@ -56,3 +56,16 @@ void MipsLinkingContext::addPasses(PassManager &pm) { pm.add(std::move(pass)); ELFLinkingContext::addPasses(pm); } + +bool MipsLinkingContext::isPLTRelocation(const DefinedAtom &, + const Reference &r) const { + if (r.kindNamespace() != Reference::KindNamespace::ELF) + return false; + assert(r.kindArch() == Reference::KindArch::Mips); + switch (r.kindValue()) { + case llvm::ELF::R_MIPS_JUMP_SLOT: + return true; + default: + return false; + } +} |