summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2014-01-17 21:18:37 +0000
committerSimon Atanasyan <simon@atanasyan.com>2014-01-17 21:18:37 +0000
commit362bdc125e94b32b852b134dba9d67ad3075c6fd (patch)
tree91c3ac42f475b6f9877dd140ad24e7c604d33422 /lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp
parent66338224be6072b9af6f87aee0e3078076bfb4e3 (diff)
downloadbcm5719-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.cpp13
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;
+ }
+}
OpenPOWER on IntegriCloud